我有一个函数接受输入,即人数,并计算这些人有相同的随机生成生日的概率。我正在使用字典和随机生成的数组,然后循环运行5000次。但是,似乎存在问题,因为当我尝试运行该函数时出现错误:ArgumentError: Dict(kv): kv needs to be an iterator of tuples or pairs
。我怎样才能解决这个问题?谢谢!!
function prob_same_bday(numpeople::Int64)
samebday = 0
for i = 1:5000
arr1 = rand(1:365, 1, numpeople)
d = Dict(arr1)
for val in itr
d[val] = get!(d, val, 0) + 1
if get!(d, val, 0) > 1
samebday = samebday + 1
else
continue
i = i + 1
end
end
end
return samebday / 5000
end
答案 0 :(得分:1)
您只需要一维arryay,所以应该是
arr1 = rand(1:365, numpeople)
现在,我假设您要在字典中存储点击数。您不能像这样将数组传输到字典。例如,您可以这样做:
d = Dict(1:numpeople .=> 0)
请注意,d
和Vector
一样好
看起来像是一项家庭作业,所以请继续尝试:=)