最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python編程算法【十七】 猜牌術(shù)

2022-10-22 17:51 作者:SPC編程愛好者  | 我要投稿

【案例內(nèi)容】

魔術(shù)師利用一副牌中的13張黑桃,預(yù)先將它們排好后疊在一起,并且牌面朝下。對(duì)觀眾說:我不看牌,只要數(shù)數(shù)就可以猜到每張牌是什么,請(qǐng)看:魔術(shù)師將最上面的那張牌數(shù)為1,把它翻過來正好是黑桃A,并將黑桃A放在桌子上,然后按順序從上到下數(shù)手上的余牌,第二次數(shù)1、2,將第一張牌放在這疊牌的下面,將第二張牌翻過來,正好是黑桃2,也將它放在桌上,第三次數(shù)1、2、3,將前面兩張依次放在這疊牌的下面,把第三張牌翻過來正好是黑桃3。按此方式依次將13張牌全翻出來,準(zhǔn)確無誤。問魔術(shù)師手中的牌原始順序是怎樣擺放的?


【解題思路】

從程序角度分析,可設(shè)兩個(gè)數(shù)組,第一個(gè)數(shù)組存儲(chǔ)13個(gè)數(shù)字0,代表13個(gè)空位,一會(huì)用它來存放13張撲克牌的位置,比如?position = [0 for i in range(13)] 。第二數(shù)組存儲(chǔ)13張撲克牌,用數(shù)字1-13代表撲克牌中的A-K,比如?cards = [i for i in range(1, 14)]。接著我們手動(dòng)模擬擺放一下?lián)淇伺频奈恢茫鶕?jù)題意,前四張撲克牌即1-4的擺放位置如下:
????????????????????????????1,0,2,0,0,3,0,0,0,4,0,0,0
0表示空位,當(dāng)繼續(xù)擺放5的時(shí)候,應(yīng)從數(shù)字4后面的第一個(gè)0開始,數(shù)5位,數(shù)到盡頭時(shí)再從左側(cè)的數(shù)字0繼續(xù)數(shù)到5位為止,那么數(shù)字5的擺放位置如下:
? ? ????????????????????????1,0,2,5,0,3,0,0,0,4,0,0,0
以此類推,數(shù)字6,就從數(shù)字5后面的第一個(gè)0開始,數(shù)6位,并跳過非0的數(shù)字,擺放如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ??1,0,2,5,0,3,0,0,0,4,0,6,0
按照上述的方式,把全部的數(shù)字?jǐn)[放完畢。
經(jīng)觀察發(fā)現(xiàn),撲克牌的數(shù)字,就是每次循環(huán)的次數(shù),比如當(dāng)數(shù)字2擺定后,需循環(huán)3次后,放置數(shù)字3;同理數(shù)字3擺定后,需循環(huán)4次后,放置數(shù)字4。此外,當(dāng)下標(biāo)到達(dá)盡頭,即下標(biāo)為12時(shí),應(yīng)從頭開始,即下標(biāo)從0開始數(shù)。另外,循環(huán)數(shù)數(shù)的時(shí)候要跳過非0數(shù)字。


【Python代碼】

最終的排序結(jié)果如列表所示

本題的邏輯思路相對(duì)比較復(fù)雜,既要考慮循環(huán),還要考慮下標(biāo),同時(shí)在循環(huán)時(shí),還要跳過非0的數(shù)字。從本題中也可以看出,編程可以用來解決日常生活問題,其實(shí)它早已廣泛應(yīng)用于我們的生產(chǎn)生活中,與我們的日常生活息息相關(guān),密切聯(lián)系。

Python編程算法【十七】 猜牌術(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
苍溪县| 远安县| 沾益县| 肇州县| 宁阳县| 象山县| 准格尔旗| 佛教| 岗巴县| 德江县| 肇庆市| 平潭县| 黄骅市| 易门县| 高密市| 涿州市| 雷山县| 九江县| 收藏| 齐河县| 玉田县| 韶山市| 清水河县| 合江县| 廊坊市| 德阳市| 万荣县| 皋兰县| 洮南市| 金川县| 西城区| 平武县| 那坡县| 彰化县| 合肥市| 巴南区| 工布江达县| 武陟县| 万州区| 清流县| 大足县|