我试图让随机数生成器工作,但我的期望是不正确的(除非我从根本上误解了某些东西)。
我有这个预设数组:
array = [1 0 0]
我继续使用MATLAB中的rand()函数生成1到3之间的随机索引。
index=round(1+2*rand(1,1),0); %generate random index between 1 and 3
随后,我试图将随机生成的索引访问的条目数组合在一起进行一些迭代:
answer_array=[] %answer holder
for i = 1:1:iterations %Loop for the set number of iterations
index=round(1+2*rand(1,1),0);
answer_array=[answer_array array(index)]
end
然后我尝试将answer_array中的1的数量相加并找出它与迭代次数的比率
temp=0;
for i=1:size(answer_array,2)
temp=temp+answer_array(1,i) %just sum all array contents as they're either 1 or 0
end
ratio=temp/iterations
无论我设置多大的迭代次数,该比率都会收敛于0.24。 它应该不是0.33吗?我的理由是,如果我自己随机选择索引,我有1/3的机会获得1.因此,如果我继续选择很多次,我的成功几率将会收敛到1/3?