【每周一坑】程序猿的浪漫

简介: 长久以来,大家对程序员的印象是“呆板”、”内向”等,殊不知他们也有浪漫的一面。把找不到对象归因于职业性质,这个锅,面向对象的编程语言不背!(但这个报道真不是来黑程序员的吗……)

最近公众号上的自媒体们炸了,因为苹果爸爸把腾讯爸爸的赞赏给关闭了!


讲真,这对咱们编程教室的影响还是很大的。之前每次发完文章,晚饭还能靠打赏加个鸡腿儿,这下泡汤……



不过说来,我们公众号里一直有一个不起眼的赞赏二维码,据说只有学完课程的人才会发现,所以一直没太多人赞赏。(我是不是发现了什么真相)


来看本周的题目。


前几日刷朋友圈时看到这样一个故事:


读艺术相关科系的她,透过联谊认识了一位程序员,两人凑巧都是离乡背井在外地读书,更巧合的是他们都在同一个城市、同一个小区域。某天凌晨,两人聊了许多,他突然传了一串数字,73、76、79、86、85,「这是我想对你说的」。说完这句话,他就离线睡觉去了。她熬夜苦撑终于找到「ASCII对照表」,原来5个数字代表的是,「I LOV U」。后来他们就在一起了。


长久以来,大家对程序员的印象是“呆板”、”内向”等,殊不知他们也有浪漫的一面。把找不到对象归因于职业性质,这个锅,面向对象的编程语言不背!(但这个报道真不是来黑程序员的吗……)


那么问题来了:在 python 中有 hashlib 和 base64 两大加密模块,将一串字符串先经过 hashlib.md5 加密,然后再经过 base64 加密,最后得到一串字符:


'NDRiMWZmMmVjZTk5MTFjMWI1MDNkYTY0MzZlYTAzMTA=\n'


在此给出 4 个选项


  1. 我们在一起吧
  2. 我选择原谅你
  3. 别说话,吻我
  4. 多喝热水


请各位大侦探们使用科学的方法算出我说的什么吧!


参考资料:


python中的hashlib和base64加密模块使用实例:http://www.jb51.net/article/54631.htm


附加题:


有另一半或者近期准备表白同学可以试着发送一段加密字符给 ta,看看 ta 的反应。


欢迎在留言区说出你的故事。



【田忌赛马】解答


第一题比较简单,就是按照背景介绍,根据马匹的情况,将数组重新分配即可。


g = [3,6,9]
t = [2,5,8]
def race(g,t):
    # 重新分配
    return [(g[0],t[2]),(g[1],t[0]),(g[2],t[1])]


附加题一出题有误,这里向大家诚挚地道歉,公子的选马策略并不影响最后的赢得比赛的概率。


附加题二描述得也不太清楚,误导了一些同学。本意是,改成五档后,齐王仍然遵守规则,田忌继续不按套路出牌,最终田忌赢得比赛的所有可能。


所以结果是 27。算出来上千的同学不用困惑,题之歧义,非战之罪。下次我们会避免。


解决思路是,遍历所有可能的对阵情况,筛选出所有田忌赢得比赛的结果,并输出。


在给出答案之前,简单介绍需要用到的两个函数:


itertools.permutations(iterable[, r])


创建一个迭代器,返回 iterable 中所有长度为 r 的项目序列,在本题,我们使用此函数获得某一方所有派遣马匹的方式。


示例:


>>>permutations('ABCD', 2)
AB AC AD BA BC BD CA CB CD DA DB DC
>>>permutations(range(3))
012 021 102 120 201 210


zip([iterable, ...])


zip() 是 Python 的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个 tuple(元组),然后返回由这些 tuples 组成的 list(列表)。本题中,我们使用此函数获得双方马匹的对阵情况。


>>>a = [1,2,3]
>>>b = [4,5,6]
>>>list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]


整体代码如下:


import itertools
tianji = [1,3,5,7,9]
qiwang = [2,4,6,8,10]
def fj2(qiwang,tianji):
    # 获取田忌所有派遣马匹的方式
    tianji_l = list(itertools.permutations(tianji,len(tianji)))    
    # 全部赛果
    res_all_turns = []    
    # 遍历所有的方式
    for i in tianji_l:        
    # 某一轮的比赛结果
        res_one_turn = []        
        # 某一轮比拼中,双方马匹对阵情况
        for horses in zip(i,qiwang):            
            if horses[0] < horses[1]:
                res_one_turn.append('lose')            
            else:
                res_one_turn.append('win')       
        if res_one_turn.count('win') >= 3:
            res_all_turns.append('win')   
    return len(res_all_turns)
print(fj2(qiwang,tianji))


也可参考 @王任 的解答:

http://paste.ubuntu.com/24401290/


码上行动在线学习班正在开放中,详情回复 码上行动


近期文章推荐阅读:

喏,你们要的 PyCharm 快速上手指南

给伸手党的福利:Python 新手引导

只学2个月编程能写出什么代码?他们表示:You can you code!

如何用100行Python代码做出魔性声控游戏“八分音符酱”

数据分析:当赵雷唱民谣时他唱些什么?

一行代码扫出“敬业福”

我扒了杜蕾斯的微博

Python 爬虫爬取美剧网站

今天,你抢到票了吗?

爆款游戏《贪吃蛇大作战》的 Python 实现

相关文章
|
算法 程序员 C#
程序员也可以很浪漫!这样的一款表白代码收藏馆项目,即使小白也可以使用,发给你的对象试试!
程序员也可以很浪漫!这样的一款表白代码收藏馆项目,即使小白也可以使用,发给你的对象试试!
611 0
|
小程序 程序员
程序员的浪漫之——情侣日常小程序
程序员的浪漫之——情侣日常小程序
674 0
|
JavaScript 前端开发 Java
程序员在七夕如何用各大编程语言写浪漫情书呢?
程序员在七夕如何用各大编程语言写浪漫情书呢?
438 7
|
前端开发 JavaScript 程序员
后端程序员的前端基础-前端三剑客之CSS
后端程序员的前端基础-前端三剑客之CSS
124 8
|
程序员
程序员的浪漫七夕
这篇文章分享了程序员如何以独特的方式庆祝七夕节,包括记录与爱人共度的时光、用代码进行创意表白(如循环打印“爱你三千遍”),并幽默建议实际生活中应多陪伴和享受生活。
程序员的浪漫七夕
|
图形学
不断涌出的爱意,使用SwiftUI搭建一个爱心粒子动画~
不断涌出的爱意,使用SwiftUI搭建一个爱心粒子动画~
396 0
|
Dart 前端开发 JavaScript
程序员喜欢一句话代码的浪漫
作为一名合格的程序员,不会通过代码来制造浪漫,有点说不过去。每一年在逢年过节的时候,程序员都会通过自己的专业特长来制造专属浪漫,比如用代码实现一个心形的图案、用代码实现嫦娥奔月、用代码实现输出“土味情话”等等,这都是非常浪漫的瞬间。
575 0
程序员喜欢一句话代码的浪漫
|
人工智能
技术下午茶:初识ChatGPT,触碰未来(4)
技术下午茶:初识ChatGPT,触碰未来
171 1
技术下午茶:初识ChatGPT,触碰未来(4)
|
搜索推荐 JavaScript 前端开发
如何写一个程序,哄女朋友或者老婆开心?
@[TOC](目录) 如何写一个程序,哄女朋友开心?下面有个列子 要编写一个让女朋友高兴的程序,需要考虑以下几点: 1. 了解女朋友的兴趣爱好:如果女朋友喜欢音乐,可以在程序中添加音乐播放功能;如果女朋友喜欢拍照,可以在程序中添加拍照和修图功能。 2. 考虑女朋友的需求:如果女朋友需要管理日历和任务,可以在程序中添加这些功能,帮助她更好地管理时间和任务。 3. 添加个性化元素:在程序中添加一些女朋友喜欢的元素,比如她的名字、照片、喜欢的颜色等等,让程序更加个性化和特别。 4. 添加互动元素:在程序中添加一些互动元素,比如发送生日祝福、情人节祝福等等,让女朋友感受到自己的关心和爱。 下面是一些可
663 0
|
存储 算法 C语言
C/C++ 玩转StoneValley库:从入门到精通
C/C++ 玩转StoneValley库:从入门到精通
203 0