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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 长久以来,大家对程序员的印象是“呆板”、”内向”等,殊不知他们也有浪漫的一面。把找不到对象归因于职业性质,这个锅,面向对象的编程语言不背!(但这个报道真不是来黑程序员的吗……)

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


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



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


来看本周的题目。


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


读艺术相关科系的她,透过联谊认识了一位程序员,两人凑巧都是离乡背井在外地读书,更巧合的是他们都在同一个城市、同一个小区域。某天凌晨,两人聊了许多,他突然传了一串数字,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 实现

相关文章
|
4月前
|
程序员
程序员的浪漫七夕
这篇文章分享了程序员如何以独特的方式庆祝七夕节,包括记录与爱人共度的时光、用代码进行创意表白(如循环打印“爱你三千遍”),并幽默建议实际生活中应多陪伴和享受生活。
程序员的浪漫七夕
|
Apache
好哥哥们求求了
为什么按教程来安装apache报错
47 0
|
程序员 网络架构
|
程序员
程序猿也浪漫
程序猿也浪漫
|
Windows
写文章狗屁不通,怎么办?跪求高人指点!
写文章狗屁不通,怎么办?跪求高人指点!
191 0
写文章狗屁不通,怎么办?跪求高人指点!
|
前端开发 程序员 数据安全/隐私保护
【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋
【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋
332 0
【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋
|
前端开发 程序员
程序猿的中秋原来可以这样过
程序猿的中秋原来可以这样过
107 0
程序猿的中秋原来可以这样过
|
前端开发 JavaScript 程序员
谁说程序员不浪漫?给你7个浪漫源码
谁说程序员不浪漫?给你7个浪漫源码
232 0
谁说程序员不浪漫?给你7个浪漫源码
|
程序员 数据库
想当程序猿?你需要这个-程序猿修炼必备书单(下)
继上次书单以后,再次来给大家强推一波书单啦。这样暑假大家就不会再寂寞了。嘿嘿嘿……这些书都是经典中的经典,若能静下心来好好读一读,想必收获必然是无限大的!
137 0
想当程序猿?你需要这个-程序猿修炼必备书单(下)
儿童节,5岁宝宝写给程序员爸爸的一封信!萌翻了!
六一儿童节到了,云栖社区特别采访了几位可爱的宝宝,来分享他们眼中的程序员爸爸妈妈。