Python挑戰(zhàn)100題(31~33)

31唇撬、取石子問題

題目:有兩堆石子它匕,數(shù)量任意,可以不同窖认。游戲開始由兩個(gè)人輪流取石子超凳。游戲規(guī)定,每次有兩種不同的取法耀态,
一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時(shí)取走相同數(shù)量的石子暂雹。最后把石子全部取完者為勝者首装。
現(xiàn)在給出初始的兩堆石子的數(shù)目a和b,如果輪到你先取杭跪,假設(shè)雙方都采取最好的策略仙逻,問最后你是勝者還是敗者驰吓。
如果你是勝者,輸出Win,否則輸出Loose系奉。
例如檬贰,a=3,b=1, 則輸出Win(你先在a中取一個(gè),此時(shí)a=2缺亮,b=1,此時(shí)無論對(duì)方怎么取翁涤,你都能將所有石子都拿走).
參考答案:
威佐夫博弈
版權(quán)聲明:本文為CSDN博主「ojshilu」的原創(chuàng)文章,遵循CC 4.0 by-sa版權(quán)協(xié)議萌踱,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明葵礼。
原文鏈接:https://blog.csdn.net/ojshilu/article/details/16812173

a=3
b=1
if a<b:
    tmp=a
    a=b
    b=tmp
k=a-b
a=(int)(k*(1+5.0**0.5)/2.0);
if a==b:
    print('Loose')
else:
    print('Win')
平衡狀態(tài)(奇異局勢(shì)):

平衡狀態(tài)的概念:
引入一個(gè)概念,平衡狀態(tài)并鸵,又稱作奇異局勢(shì)鸳粉。當(dāng)面對(duì)這個(gè)局勢(shì)時(shí)則會(huì)失敗。任意非平衡態(tài)經(jīng)過一次操作可以變?yōu)槠胶鈶B(tài)园担。每個(gè)玩家都會(huì)努力使自己抓完石子之后的局勢(shì)為平衡届谈,將這個(gè)平衡局勢(shì)留給對(duì)方。因此弯汰,玩家A能夠在初始為非平衡的游戲中取勝艰山,玩家B能夠在初始為平衡的游戲中取勝。

玩法三(2堆石子每次從一或兩堆取一樣數(shù)目的石子):

最后一個(gè)奇異局勢(shì)是(0,0)蝙泼。緊接著的奇異局勢(shì)有(1,2),(3,5),(4,7),(6,10)......

現(xiàn)在把它們看成一個(gè)奇異局勢(shì)組成的序列(0,0),(1,2),(3,5),(4,7),(6,10)......

奇異局勢(shì)的判定:

我們會(huì)發(fā)現(xiàn)這個(gè)序列的規(guī)律程剥,設(shè)序列第k個(gè)奇異局勢(shì)元素為(Ak,Bk),k為自然數(shù)汤踏。那么织鲸,初始條件k=0時(shí)是,A0=B0=0溪胶,遞推關(guān)系為下一個(gè)奇異局勢(shì)的Ak是未在前面出現(xiàn)過的最小自然數(shù)搂擦,且Ak = Bk + k。

上面發(fā)現(xiàn)了奇異局勢(shì)的遞推公式哗脖,那么給出一個(gè)局勢(shì)瀑踢,如何判斷其是否是奇異局勢(shì)呢?

黃金分割數(shù):

數(shù)學(xué)真奇妙才避,竟然發(fā)現(xiàn)橱夭,這個(gè)序列跟黃金分割數(shù)有關(guān)系。黃金分割數(shù)是2/(1+sqrt(5))=(sqrt(5)-1)/2桑逝,其小數(shù)約等于0.61803398875棘劣,其倒數(shù)是(1+sqrt(5))/2,約等于1.61803398875楞遏。

這個(gè)奇異局勢(shì)的序列的通項(xiàng)公式可以表示為:

Ak = [k*(1+sqrt(5.0)/2]
Bk = Ak + k
其中k=0茬暇,1首昔,2,...,n 糙俗,方括號(hào)表示int取整函數(shù)勒奇。

有了這個(gè)通項(xiàng)式子,逆向的巧骚,對(duì)于某一個(gè)局勢(shì)赊颠,只需要判斷其A是否是黃金分割數(shù)的某個(gè)k的倍數(shù),然后再確認(rèn)B是否等于A+k即可网缝。

32巨税、楊輝三角

題目:還記得中學(xué)時(shí)候?qū)W過的楊輝三角嗎?具體的定義這里不再描述粉臊,你可以參考以下的圖形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
..............
先在給你一個(gè)正整數(shù)n草添,請(qǐng)你輸出楊輝三角的前n層
注意:層數(shù)從1開始計(jì)數(shù),每層數(shù)字之間用一個(gè)空格隔開,行尾不要有空格扼仲。
如n=2,則輸出:
1
1 1
參考答案:

n= 6
L = [1]
i = 1
print(1)
while i < n:
    L.append(0)
    L = [L[j]+L[j-1] for j in range(len(L))]
    i += 1
    result = ' '.join([str(x) for x in L])
    print(result)

33远寸、砝碼問題Ⅱ

題目:有一組砝碼,重量互不相等屠凶,分別為m1驰后、m2、m3……mn矗愧;每種砝碼的數(shù)量有無限個(gè)灶芝。
現(xiàn)要用這些砝碼去稱物體的重量,給你一個(gè)重量n,請(qǐng)你判斷有給定的砝碼能否稱出重量n。
現(xiàn)在給你一個(gè)正整數(shù)列表w和一個(gè)正整數(shù)n唉韭,列表w中的第i個(gè)元素w[i]表示第i種砝碼的重量夜涕,
n表示要你判斷的重量。如果給定砝碼能稱出重量n属愤,輸出Yes女器,否則輸出No。
例如住诸,w=[2,5,11], n=9,則輸出Yes(取兩個(gè)2驾胆,一個(gè)5)。
參考答案:

''' 利用減法求解贱呐,通俗易懂丧诺,耗時(shí)短'''
w=[2,5,11]
n=9
flag = False

while n:
    n = min([n-x for x in w if n-x >= 0])
    if n == 0:
        flag = True
        break
    elif n <min(w):
        break

if flag:
    print('Yes')
else:
    print('No')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奄薇,隨后出現(xiàn)的幾起案子锅必,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搞隐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡远搪,警方通過查閱死者的電腦和手機(jī)劣纲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谁鳍,“玉大人癞季,你說我怎么就攤上這事√惹保” “怎么了绷柒?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涮因。 經(jīng)常有香客問我废睦,道長(zhǎng),這世上最難降的妖魔是什么养泡? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任嗜湃,我火速辦了婚禮,結(jié)果婚禮上澜掩,老公的妹妹穿的比我還像新娘购披。我一直安慰自己,他們只是感情好肩榕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布刚陡。 她就那樣靜靜地躺著,像睡著了一般株汉。 火紅的嫁衣襯著肌膚如雪筐乳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天郎逃,我揣著相機(jī)與錄音哥童,去河邊找鬼。 笑死褒翰,一個(gè)胖子當(dāng)著我的面吹牛贮懈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播优训,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼朵你,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了揣非?” 一聲冷哼從身側(cè)響起抡医,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后忌傻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體大脉,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年水孩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镰矿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俘种,死狀恐怖秤标,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宙刘,我是刑警寧澤苍姜,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站悬包,受9級(jí)特大地震影響衙猪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玉罐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一屈嗤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吊输,春花似錦饶号、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扭屁,卻和暖如春算谈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背料滥。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工然眼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人葵腹。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓高每,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親践宴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲸匿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 有一種很有意思的游戲,就是有物體若干堆阻肩,可以是火柴棍或是圍棋子等等均可带欢。兩個(gè)人輪流從堆中取物體若干,規(guī)定最后取光物...
    moosoo閱讀 670評(píng)論 0 0
  • (一)巴什博弈只有一堆n個(gè)物品,兩個(gè)人輪流從這堆物品中取物乔煞,規(guī)定每次至少取一個(gè)吁朦,最多取m個(gè)。最后取光者得勝渡贾。顯然喇完,...
    Gitfan閱讀 933評(píng)論 0 0
  • 威佐夫博奕(Wythoff Game):有兩堆各若干個(gè)物品,兩個(gè)人輪流從某一堆或同時(shí)從兩堆中取同樣多的物品剥啤,規(guī)定每...
    碧影江白閱讀 1,215評(píng)論 0 0
  • 非常贊同老師的這種一篇文章從不同角度反復(fù)練習(xí)的方法,這讓我聯(lián)想到工作也可以這樣去做不脯,哪能不進(jìn)步府怯,借簽這種認(rèn)真的態(tài)度...
    0810D洪杰閱讀 167評(píng)論 0 0
  • 今天周六,終于盼來的月假防楷,在家里睡了一上午牺丙,十一點(diǎn)多才起來,直接吃午飯复局。又睡了一個(gè)午覺冲簿,下午出去逛超市,吃完飯回家...
    依米花Erin閱讀 82評(píng)論 0 0