Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Jupyter notebook 2016-12-28-123651.ipynb

Views: 24
Kernel: Python 2 (SageMath)

程式碼的解說: r 和 s 是玩家 A 和玩家 B 的初始金額, n 是設定欲賭博的局數, m 和 p 紀錄了玩家 A 和 B 贏得的局數, g 是每一局所發生的回合數, q 是把每一局所發生的回合數全部加總起來, vv 在程式中代表著硬幣, 他會在每一回合隨機的出現 0 或 1, 如果 v=0v=0 則玩家 A 贏, 如果 v=1v=1 則玩家 B 贏, a 和 b 代表著玩家 A 和玩家 B 在每一回合當下所擁有的賭金, 所以隨著每一回合的進行, a 和 b 的數值是一直不斷地在變動的。

import random
def gambling(r, s, n): m = float(0) p = float(0) q = float(0) for i in range(1,n): a = float(r) b = float(s) g = 0 while (a != 0 and b != 0): v = random.randint(1,10000)%2 if v==0: a = a + 1 b = b - 1 else: a = a - 1 b = b + 1 #print "玩家 A:", a, "玩家 B:", b g = g+1 q = q+1 #print g,"回" if a==0: p = p+1 else: m = m+1 #print "i=", i, " v=", v, " a=", a, " b=",b, " p =", p, " m=",m, " q=",q print "局數", n print "玩家 A 賭金: ", r print "玩家 B 賭金: ", s print "玩家 A 勝 ", m, "局" print "玩家 B 勝 ", p, "局" print "玩家 A 與 B 初始賭金比例: ", r/float(s) print "玩家 A 與 B 勝局比例: ", m/float(p) print "平均一局賭", q/float(n), "回"
gambling(3,5,1000)
局數 1000000 玩家 A 賭金: 3 玩家 B 賭金: 5 玩家 A 勝 375107.0 局 玩家 B 勝 624892.0 局 玩家 A 與 B 初始賭金比例: 0.6 玩家 A 與 B 勝局比例: 0.600274927507 平均一局賭 15.005291 回