gpt4 book ai didi

python - 在 Python 中掷骰子

转载 作者:行者123 更新时间:2023-12-04 13:30:48 26 4
gpt4 key购买 nike

我需要找到我需要滚动的 100 次的期望值
一个公平的死亡,直到我得到所有六个数字
这是我的代码。我不知道如何将其放入 while 循环 100 次。任何人都可以帮忙吗?
例如:
我第一次掷到所有六个数字时,我需要掷 8 次。
第二次我掷得到所有六个数字时,我掷了 13 次
然后我记录如下:
1:8
2:13
...
100:9
我想要我的 a=[8,13,.....,9]

import random
trials = []
a=[]
collection = [random.randint(1,6) for x in range(6)]
for c in collection:
if c not in a:
a.append(c)

else:
collection.append(random.randint(1,6))
trials.append(len(collection))

print(a)
print(collection)
print(trials)

最佳答案

算法:

  • 为结果创建空字典
  • 做100次
  • 创建一组数字 1-6
  • 创建此尝试抽取号码的空列表
  • 虽然集合中仍有数字重复:
  • 画一个数字并将其添加到您的列表中
  • 如果在集合中,则从集合中删除数字

  • 将列表添加到 dict

  • 评价东西

  • 或者在代码中:
    import random

    results = {}

    for t in range(100):
    nums = set((1,2,3,4,5,6))
    data = []
    # do as long as we still lack one number
    while nums:
    n = random.randint(1,6)
    data.append(n)
    # remove if in, else we dont care
    if n in nums:
    nums.remove(n)
    # add the list to your results - if you just need the lenghts don't
    # store the whole list here, just store its lenghts and adapt the
    # evaluation code
    results[t] = data

    # evaluation
    lengths = [len(w) for w in results.values()]

    average_lengths = sum(l for l in lengths) / 100
    max_lengths = max(lengths)
    min_lengths = min(lengths)

    # output
    print(min_lengths, average_lengths, max_lengths)
    输出:
    6 13.95 31 
    您可以打印字典 results查看所有骰子滚动。
    您可以打印列表 lenghts查看所有 100 个不同的长度。

    关于python - 在 Python 中掷骰子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65167448/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com