【问题标题】:Python - 100 coin tosses [closed]Python - 100次抛硬币[关闭]
【发布时间】:2016-03-28 01:28:10
【问题描述】:

我需要编写代码来模拟 100 次抛硬币,然后再向我们展示我们丢了多少正面和正面。我做错了什么?

import random

orzel = 0
reszka = 0
suma = orzel + reszka
while suma != 100:
    rzut = random.randint(1,6)
    if rzut == 1:
        orzel +=1
    if rzut == 2:
        reszka +=1

print(orzel, "i", reszka)
input("koniec")

【问题讨论】:

  • 如果你要模拟抛硬币,你为什么要掷骰子?
  • rand(1,6) 是错误的,因为硬币只有 2 个站点。此外,您不会在循环中更改 suma。所以你得到一个无限循环。
  • 在 while 循环中更新 suma。或者更好,根本不使用它,只在while条件下测试orzel + reszka != 100
  • @user2357112 如果骰子落在12 上的可能性相同,而您忽略所有其他结果并重新掷骰,真的有什么不同吗?
  • 更简单:count_heads = numpy.random.binomial(100, 0.5)

标签: python


【解决方案1】:

您可以通过使用random.randint(1,2) 并在循环内移动suma = orzel + reszka 来修复您的代码,但最好使用像这样的pythonic 方法:

from random import choice
outcome = {'orzel':0, 'reszka':0}
for i in range(100):
    outcome[choice(['orzel','reszka'])] += 1
print(outcome)

【讨论】:

  • 确实非常pythonic
猜你喜欢
  • 2014-10-24
  • 2016-09-13
  • 1970-01-01
  • 2016-06-15
  • 2016-02-18
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多