
大家好,我看了春晚拿杯子的魔术,想着着肯定有时数学问题,就试着用python实现了一下
我们可以用以下代码实现:
import random kuaizi = '筷子' shaozi = '勺子' beizi = '杯子' l = [kuaizi, shaozi, beizi] random.shuffle(l)
i = l.index(kuaizi) if i != 0: l[i-1], l[i] = l[i], l[i-1]
i = l.index(beizi) if i != 2: l[i+1], l[i] = l[i], l[i+1]
i = l.index(shaozi) if i != 0: l[i-1], l[i] = l[i], l[i-1]
print("左手:",l[0],"右手:",l[2])
输出可知,无论怎么运行,都输出的是右手拿杯子,让我们来验证一下:
import random kuaizi = '筷子' shaozi = '勺子' beizi = '杯子' j = 0 for _ in range(1000000): l = [kuaizi, shaozi, beizi] random.shuffle(l) # 筷子和左边的互换 i = l.index(kuaizi) if i != 0: l[i-1], l[i] = l[i], l[i-1] #杯子和右边的互换 i = l.index(beizi) if i != 2: l[i+1], l[i] = l[i], l[i+1] #勺子和左边的互换 i = l.index(shaozi) if i != 0: l[i-1], l[i] = l[i], l[i-1] if l[2] == beizi: j += 1 print(j/1000000)
最后输出1.0,说明右手一定会拿起杯子的,有人能解释一下吗
到此这篇关于python实现春晚魔术的示例代码的文章就介绍到这了,更多相关python 春晚魔术内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!