Added exercise 8
This commit is contained in:
parent
559bd5dc6f
commit
311f029372
38
ex_08.py
Normal file
38
ex_08.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
from itertools import count
|
||||||
|
import random
|
||||||
|
|
||||||
|
from util.io import readvalue
|
||||||
|
|
||||||
|
def peter_coin_series(randf = random.randint):
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for k in count(1):
|
||||||
|
if(randf(0, 1) < 0.5):
|
||||||
|
return (result, k)
|
||||||
|
result += 2**k
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if( __name__ == "__main__"):
|
||||||
|
|
||||||
|
def positive_int(s):
|
||||||
|
i = int(s)
|
||||||
|
if(i <= 0):
|
||||||
|
raise ValueError("{} is negative".format(i))
|
||||||
|
return i
|
||||||
|
|
||||||
|
print("I am going to toss a coin many times.\n"
|
||||||
|
"You are going to win 2**k if no head appears afer k throws.\n")
|
||||||
|
|
||||||
|
bet = readvalue("How many ducats do you want to bet? ", positive_int)
|
||||||
|
result, throws = peter_coin_series()
|
||||||
|
|
||||||
|
win = bet - result
|
||||||
|
|
||||||
|
if(win < 0):
|
||||||
|
print("Bad, A head came out on throw #{}. You lost {} ducats.".format(throws, -win))
|
||||||
|
else:
|
||||||
|
print("You won {} ducats.".format(win))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user