2018.1.1

Norvig这厮,我研究了半天他的代码,结果一测试发现根本是错的,连他自己写的测试用例他都通不过,简直妈的智障,我的代码虽然啰嗦但至少还是能实现功能吧。。。

当然话说回来,itertools里确实有些好东西,map,filter,reduce啥的也要熟悉熟悉的

蛋疼的是我最后仍然没有100%的看懂他的代码,因此问题出在哪也没有找到。。。难受

更新:

看了半天还是发现问题了,原来他上一个模块写的就有点问题,没有为多副套牌的情况预留设计冗余,导致他其实是并没有达到“同样的分数返回多副套牌”的设计要求的。

而且他那模块写成那个样子,改又没办法改,必须大手术。。。所以说函数式编程这玩意看着酷炫,终究还是奇技淫巧。。。

又更新:

我刚才突然想起来,其实我的代码也跟他一模一样的问题啊,怎么就没报错呢,然后我把我和Norvig的代码都拆分到最后一步,发现最后一步虽然都是对一个同一个list做max运算(不过list里的内容次序有点区别,不知道后面的问题是不是这个原因造成的),但是max的结果却不一样!实际上list中的四个turple的值是相同的,但是我的结果永远是返回固定的一个,也就是测试用例规定正确的那个,Norvig则是随机四选一

???

见了鬼了

另外一个问题是,其实我的结果和测试用例说的正确结果,虽然因为没有重复字符串所以看着可能比较像正确的,但是仔细想下,从应用层面来说没有理由一定是这个,随便选一个都没什么问题的,所以其实Norvig所谓的bug并非是bug,只是写题目描述的人和他思路不统一而已。

但是这个同一个list的max返回值不同的问题我是真的理解不了了,而且我感觉也没必要去纠结,当玄学处理吧,反正他的代码我基本看懂了就好,以后可以考虑去看看SICP,增长一下姿势水平

转载于:https://www.cnblogs.com/dynasty919/p/8169349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值