Random 费舍尔·耶茨洗牌:如果在m次之后停止,是否随机?
我有整数1,2,3,…,n,我必须从中随机选取mRandom 费舍尔·耶茨洗牌:如果在m次之后停止,是否随机?,random,shuffle,Random,Shuffle,我有整数1,2,3,…,n,我必须从中随机选取m
我的理解正确吗?是的,也许更容易继续: 让
rand(z)
返回范围[0..z)
for(int i=0;i
X[0..m-1]
现在是随机样本是。(这个答案甚至比发表评论的长度要求还要短……)你刚刚重新发明了。@finnw-很好的链接。谢谢你指出它。+1
for (int i = 0; i < m; i++)
swap(X[i], X[i+rand(n-i)])