【问题标题】:randomly pick an element from a list in python using pseudo random generator which should happen 50 percent of time使用伪随机生成器从 python 列表中随机选择一个元素,这应该发生在 50% 的时间
【发布时间】:2026-01-31 09:30:01
【问题描述】:

我有一个包含某些元素的列表。例如 event=["head","tail"]。应使用伪随机生成器随机选择每个元素。此随机事件应发生大约 50% 的时间。使用一些一种伪随机数生成器,但以一种我们可以重复测试或序列的方式进行,如果测试中的某些内容失败,我们可以重复发生的事情。这应该在 python 中实现

【问题讨论】:

  • 你是什么意思:1) 随机事件 50% ?你的意思是正面和反面应该被称为相同的次数吗? 2)重复;你的意思是两次测试的结果是一样的?
  • 是的,头部和尾部应该出现相同的次数。所以如果测试失败,我想检查它是如何失败的。但只有当我知道事件正确发生的顺序时,我才能知道?
  • 感谢您的回复!!我可以用两个函数代替 h 和 t 吗?我想随机调用这两个函数。这可能吗?@JeD
  • 是的,这应该不是问题,因为我们只是随机选择索引。 @Sai
  • 如果我想得到头部和尾部怎么办?我的意思是第一次如果它捡起头部,下次它应该捡起尾巴,等等......这应该发生6次。跨度>

标签: python random probability


【解决方案1】:
import random as rnd
coin=["h","t"]
seed=10
rnd.seed(seed)

for i in range(100):
    print coin[rnd.randint(0,1)]

这是你想要的吗?请在以后的问题中更加具体

【讨论】:

    【解决方案2】:

    我相信你的意思

    以一种我们可以重复测试或序列的方式进行此操作,如果测试中的某些内容失败,我们可以重复发生的事情

    是使用种子。种子本质上是字符串,如果提供相同的种子,它们会导致伪随机数生成器始终产生相同的结果。

    import random
    random.seed('abcd')
    
    coin = ['heads', 'tails']
    number_of_tests = 100
    
    for i in range(number_of_tests):
        print(random.choice(coin))
    

    并且任何时候您想重复测试并获得相同的结果,只需调用

    random.seed('abcd')
    

    再次。

    【讨论】:

    • 所以这里是随机选择正面还是反面。abcd是什么意思?和正面和反面有什么关系?@JeD
    • @Sai 'abcd 是一个所谓的 "seed-value" 随机函数需要一个起点。我用10作为起点,他用'abcd'。这样做是为了确保即使运行多次也能得到相同的结果。如果你改变种子值,你会得到一个不同的随机序列。
    • 谢谢!!这很有用。