working version
This commit is contained in:
parent
1ccfa533a1
commit
bfd1b26a28
36
coin.py
Normal file
36
coin.py
Normal file
@ -0,0 +1,36 @@
|
||||
import numpy as np
|
||||
rng = np.random.default_rng()
|
||||
|
||||
class Player:
|
||||
def __init__(self) -> None:
|
||||
pass
|
||||
def play(self):
|
||||
n = 1
|
||||
while True:
|
||||
if np.random.randint(2):
|
||||
return n
|
||||
else:
|
||||
n += 1
|
||||
|
||||
class Simulator:
|
||||
def __init__(self, N:int) -> None:
|
||||
self.player = Player()
|
||||
self.N = N
|
||||
def simulation(self) -> list:
|
||||
total = 0
|
||||
for _ in range(self.N):
|
||||
total += self.player.play()
|
||||
return total
|
||||
def output(self, n:int) -> None:
|
||||
results = np.array([self.simulation() for _ in range(n)])
|
||||
wins = np.full(n, self.N)
|
||||
wr = wins/results
|
||||
print(f"finished {n} times of simulation!")
|
||||
print("for total plays:\n\tmean\tstd")
|
||||
print(f"\t{np.mean(results)}\t{np.std(results)}")
|
||||
print("for win rates:\n\tmean\tstd")
|
||||
print(f"\t{np.mean(wr)}\t{np.std(wr)}")
|
||||
|
||||
sim = Simulator(1)
|
||||
sim.output(100000)
|
||||
print(np.log(2))
|
Loading…
Reference in New Issue
Block a user