|
|
发表于 2016-1-26 12:33:55
|
显示全部楼层
回帖奖励 +3 鱼币
本帖最后由 wei_Y 于 2016-1-26 12:35 编辑
- import random
- def ran_result():
- # 生成结果。
- for i in range(100000):
- yield random.randint(1, 100)
- def run():
- guess_result = []
- def guess(init, i, init_max=100, init_min=1, count=1):
- # 猜测。
- if init == i:
- guess_result.append(count)
- return
- elif init < i:
- init_min = init
- elif init > i:
- init_max = init
- # 纯随机。
- init = random.randint(init_min, init_max)
- guess(init, i, init_max=init_max, init_min=init_min, count=count+1)
-
- for x in ran_result():
- guess(random.randint(1, 100), x)
- return guess_result
- def count_result():
- # 统计。
- result = run()
- # 效率低,可修改最大值。
- count = [0 for i in range(max(result))]
- for x in result:
- count[x-1] += 1
- for i in range(len(count)):
- print("尝试 %d 次猜中的有 %d 轮" % (i+1, count[i]))
- print("平均需要: %.5f次" % (sum(map(lambda x: x*int(count.index(x))+1, count)) / 100000))
-
- count_result()
复制代码
我也来试试。 |
评分
-
查看全部评分
|