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