|

楼主 |
发表于 2016-2-1 21:19:23
|
显示全部楼层
这是 @shuofxz 的第一个程序。
- import random
- N = 0
- guess = 0
- G1 = G2 = G3 = G4 = G5 = G6 = G7 = G8 = G9 = 0
- SUM = 0
- while N < 100000:
- AAA = random.randint(1,10)
- N += 1
- i =0
-
- while guess != AAA:
- SUM += 1
- i += 1
- guess = random.randint(1,10)
-
- if i == 1:
- G1 += 1
-
- elif i == 2:
- G2 += 1
-
- elif i == 3:
- G3 += 1
-
- elif i == 4:
- G4 += 1
-
- elif i == 5:
- G5 += 1
-
- elif i == 6:
- G6 += 1
-
- elif i == 7:
- G7 += 1
-
- elif i == 8:
- G8 += 1
-
- elif i == 9:
- G9 += 1
- print('尝试1次猜中的有', G1, '轮')
- print('尝试2次猜中的有', G2, '轮')
- print('尝试3次猜中的有', G3, '轮')
- print('尝试4次猜中的有', G4, '轮')
- print('尝试5次猜中的有', G5, '轮')
- print('尝试6次猜中的有', G6, '轮')
- print('尝试7次猜中的有', G7, '轮')
- print('尝试8次猜中的有', G8, '轮')
- print('尝试9次猜中的有', G9, '轮')
- print('平均', round(SUM/100000, 3), '次猜中')
复制代码
也是用随机数作为猜数。
实际运行结果:
尝试1次猜中的有 8973 轮
尝试2次猜中的有 8158 轮
尝试3次猜中的有 7293 轮
尝试4次猜中的有 6585 轮
尝试5次猜中的有 5935 轮
尝试6次猜中的有 5256 轮
尝试7次猜中的有 4798 轮
尝试8次猜中的有 4317 轮
尝试9次猜中的有 3951 轮
平均 8.989 次猜中
用时:1.973s
第二个程序。
- import random
- SUM = 0
- result = [0,0,0,0,0,0,0,0,0,0]
- N = 0
- while N < 100001:
- N += 1
- AAA = random.randint(1,100)
- i =0
- MIN = 1
- MAX = 100
-
- while (MIN+MAX)//2 != AAA:
- SUM += 1
- i += 1
- if (MIN+MAX)//2 < AAA:
- MIN = (MIN+MAX)//2
- else:
- MAX = (MIN+MAX)//2
- result[i] += 1
-
- for i in range(0,10):
- print('尝试%d次猜中的有 %3d 轮'%(i+1,result[i]))
- print('平均', round(SUM/100000, 3), '次猜中')
复制代码
采用2分法,但有时会死循环,需修改。 |
|