|
|
照搬猫猫的思路
import random
def game(n):
total=pow(2,n)-1
sum=1
i=0
last=1
while sum<total:
i+=1
sig=round(random.random()*100000)%2
if sig==0:
last-=1
else:
last+=1
if last>n:
last=1
elif last<1:
last=n
#print(last,end=',')
sum |=pow(2,last-1)
#print("i=",i)
return i
def p(m,n):
s=0
for j in range(m):
s+=game(n)
return s/m
#p(10000,20)
for i in range(1,21) rint(i,round(p(1000*i,i)))
'''
1 0
2 1
3 3
4 6
5 10
6 15
7 21
8 28
9 36
10 45
11 55
12 66
13 78
14 91
15 104
16 120
17 135
18 153
19 171
20 191
''' |
|