python實(shí)現(xiàn)春晚魔術(shù)的示例代碼
大家好,我看了春晚拿杯子的魔術(shù),想著著肯定有時(shí)數(shù)學(xué)問(wèn)題,就試著用python實(shí)現(xiàn)了一下
打亂勺子、筷子、杯子的順序
我們可以用以下代碼實(shí)現(xiàn):
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])輸出可知,無(wú)論怎么運(yùn)行,都輸出的是右手拿杯子,讓我們來(lái)驗(yàn)證一下:
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,說(shuō)明右手一定會(huì)拿起杯子的,有人能解釋一下嗎
到此這篇關(guān)于python實(shí)現(xiàn)春晚魔術(shù)的示例代碼的文章就介紹到這了,更多相關(guān)python 春晚魔術(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas中DataFrame.to_dict()的實(shí)現(xiàn)示例
本文主要介紹了pandas中DataFrame.to_dict()的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
python使用ctypes調(diào)用第三方庫(kù)時(shí)出現(xiàn)undefined?symbol錯(cuò)誤詳解
python中時(shí)間的庫(kù)有time和datetime,pandas也有提供相應(yīng)的時(shí)間處理函數(shù),下面這篇文章主要給大家介紹了關(guān)于python使用ctypes調(diào)用第三方庫(kù)時(shí)出現(xiàn)undefined?symbol錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2023-02-02
Python中的defaultdict與__missing__()使用介紹
下面這篇文章主要給大家介紹了關(guān)于Python中defaultdict使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02
Python使用multiprocessing.Queue進(jìn)行進(jìn)程間通信
本文主要介紹了Python使用multiprocessing.Queue進(jìn)行進(jìn)程間通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))
Counter 是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,用于統(tǒng)計(jì)某些可哈希對(duì)象的數(shù)量。它以字典的形式存儲(chǔ)元素和它們的計(jì)數(shù),這篇文章主要介紹了Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù)),需要的朋友可以參考下2023-04-04
python中__call__內(nèi)置函數(shù)用法實(shí)例
這篇文章主要介紹了python中__call__內(nèi)置函數(shù)用法,實(shí)例分析了python中__call__內(nèi)置函數(shù)的原理與使用技巧,需要的朋友可以參考下2015-06-06
Python+Paramiko編寫簡(jiǎn)單的SFTP文件上傳下載工具類
Paramiko 是 Python 中最流行的 SSH2 協(xié)議實(shí)現(xiàn)庫(kù),基于它我們可以輕松實(shí)現(xiàn) SFTP 客戶端功能,本文將分享一個(gè)封裝好的 SftpClient 類,支持文件上傳、下載,感興趣的小伙伴可以了解下2026-01-01

