gpt4 book ai didi

python 3.3 : Birthday Probability

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:44 24 4
gpt4 key购买 nike

尝试用 python 编写生日程序。作为 Python 的初学者,我遇到了一些麻烦。

  1. duplicates(l) 函数接受列表 l,如果它有重复元素则返回 True,否则返回 False。
  2. 函数 test(count) 生成 count 个介于 1 和 365 之间的随机整数列表。函数 duplicates(l) 将测试重复项。
  3. 函数 probability(count, num)count 人运行 num 次测试,并计算重复测试的次数。它返回具有重复项的测试分数 - 重复项数除以 num。

结果应该是这样的:

对于2个人,2个生日的概率是0.002。

3个人,2个生日的概率是0.008。等等……


卡在第 2 步和第 3 步:

import random

# not sure what to put for count
count = [random.randint(1, 365)]

def duplicates(l):
if len(l)!=len(set(l)):
return True
else:
return False

def test(count):
return [random.randint(1, 365)]

#def probability(count,num):

我相信我的第一步是正确的,但我不确定从这里到哪里去。

最佳答案

您应该像这样创建列表。 test 不是一个很有用的名字。考虑像 make_birthday_list 这样的东西

def test(count):
return [random.randint(1, 365) for x in range(count)]

一式两份的测试已经评估为 bool 值,因此您可以这样做。使用l作为变量名不是一个好主意(看起来太像1)所以我把它改成了the_list

def duplicates(the_list):
return len(the_list)!=len(set(the_list))

您必须运行测试 over and over得到概率

例如。

num_samples = 10000
for count in range(100):
dup = 0
for test_number in range(num_samples):
the_list = make_birthday_list(count)
if duplicates(the_list):
dup += 1
print(count, dup/num_samples) # / returns a float in Python3

关于 python 3.3 : Birthday Probability,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578101/

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