無聊之作 紙牌接龍(排火車)結束平均次數

2021-09-09 06:34:24 字數 2245 閱讀 6466

今天看**看累了,在實驗室看到一幅撲克牌,想到小時候的無聊遊戲-紙牌接龍(排火車,排竹尖),就是一副牌(去掉大小王)分成兩份給兩個人,然後每個人依次出一張按順序放入佇列中,當某一人出的一張牌,在佇列中已經存在的時候,這個人將會收走從佇列尾部到已經存在的牌之間的所有牌,然後再出一張,依次迴圈,直到兩個人中有一人一張牌也沒有的時候,遊戲結束,當然這個遊戲不止侷限於兩個人一副牌,n個人m副牌也是可以玩的

這好像是最無聊的紙牌遊戲了,完全沒有技術含量,完全憑運氣,但是好像從來沒有玩到結束過,因此今天看到紙牌想起來這個遊戲,就想用計算機跑一下在隨機的情況下,兩個人一副牌,遊戲結束的平均回合數有多少,因此產生了這個無聊之作

最後實驗結果得出,平均500回合(出一次牌為乙個回合)左右,遊戲會結束。。。怪不得從小到大都沒那個耐心玩完過

import random

import sys

sys.setrecursionlimit(10000)

class playerr:

def __init__(self,other_player=none):

self.card= [0 for x in range(0, 13)]

if other_player:

for i in range(13):

self.card[i]=4-other_player.card[i]

else:

for i in range(13):

self.card[i]=random.randint(0,4)

def draw_card(self):

if self.is_empty():

return -1

random_draw=random.randint(0,12)

if self.card[random_draw]>0:

self.card[random_draw]=self.card[random_draw]-1

return random_draw

else:

return self.draw_card()

def is_empty(self):

for i in range(13):

if self.card[i]>0:

return false

return true

def display_card(self):

print(self.card)

def play(cards,player_a,player_b,step):

card_a=player_a.draw_card()

'''print("---------------------")

player_a.display_card()

player_b.display_card()

print(cards)

print(card_a)

print("---------------------")

'''if card_a==-1:

return none

try:

find_index=cards.index(card_a)

except valueerror:

find_index=-1

if find_index!=-1:

for i in range(len(cards)-find_index):

card_index=cards.pop()

player_a.card[card_index]=player_a.card[card_index]+1

player_a.card[card_a] = player_a.card[card_a] + 1

else:

step[0]=step[0]+1

return play(cards,player_b,player_a,step)

def main():

sum=0

for i in range(5000):

player_a=playerr()

player_b=playerr(other_player=player_a)

step=[1]

play(,player_a,player_b,step)

sum+=step[0]

print(str(i)+"-----"+str(step))

print(sum/5000)

if __name__ == '__main__':

main()

無聊之作 C 呼叫C dll

最近由於實習工作需要,要搞一些工程化的東西,為了計算效率等原因我們的演算法是通過c 實現的,而最後的影象化軟體介面是軟工用c 完成的,因此需要提供我們c 的介面dll給他們軟工使用c 進行呼叫 1.c dll生成 新建 專案 win32控制台程式 然後取個名字 確定 下一步 選擇dll 勾選空白專案...

Typora主題 無聊時候的消遣之作

準備面試的時候太無聊了,感覺typora的介面開始讓人眼花 說明 娛樂所作 非詳細教程 可操作性很低 開始看動漫ing 斗羅真好看,決定找點圖做個斗羅大陸的主題,開始放了很多,後來發現簡潔才是王道,於是留下三哥和小舞姐 真是自虐 o 主頁成品圖 typora 使用的是electron 開發的,本質上...

最後之作 Last Order bushi

最近化學學有機選修,講羧酸的時候我想到乙個問題 不考慮空間異構 能否穩定存在等問題,某高階飽和脂肪酸有多少種同分異構體?做為一名退役的oier,我將它抽象為了另乙個問題 含 n 個 c 的飽和鏈烴基有多少同分異構體?在我廢寢忘食 不寫作業 研究了 n n geq 20 天,經歷了無數失敗後,我終於寫...