用python写算法之八枚硬币问题
先来看算法要求:
在8枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,设计一个高效的算法来检测这枚假币。
我刚开始看到这个算法的时候,有点蒙,这。。这直接排序不久完了吗。。哈哈哈,那是肯定不行的。我觉得在我看到一个问题的时候,我首先要想到是的,不要为了答案去解决问题,就像我想到的脑残问题,我拿abcd给这个8个硬币标记下,然后排个序,找到这个fake不就得了吗,其实我觉得你们都会笑,怎么会这么蠢,我其实还真看到同学跟我一样的想法。。。
废话不多说了,切入正题吧,对于这个八枚硬币,要求的是减治法,8枚然后推广到N枚。
先说8枚。
我看到了网上的一些写法,是用c++写的,是我的一个师兄,写得也非常好推荐给大家。
https://www.cnblogs.com/liuzhen1995/
这个大神吧,我觉得是啊,今年保了研,本人的算法也是根据这位学长的写的,转化加改进。
还是那样先放代码
`def find_coins(A):
a,b,c,d,e,f,g,h = A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7]
abc = a + b + c
dfe = d + e + f
if
python八枚硬币问题
最新推荐文章于 2024-04-29 22:26:02 发布