我试图想出一种算法,从包含 50 个单元格的数组中随机选择 6 个单元格,这样每个单元格被选中的概率是相等的。 我需要找到一个使用 Random(start,end) 函数不超过 6 次的解决方案。
我无法使用任何额外的数据结构,重要的是每个单元格被选中的概率相等且独立。
最佳答案
调用随机(0,49)。读取生成的单元格,然后将数组中其后面的所有内容都打乱到一个位置,这样就得到了一个包含 49 个单元格的数组,其中缺少选取的值。
调用 Random(0,48) 并重复 6 次。
关于仅使用 rand(start,end) 6 次从 50 个元胞数组中选择 6 个不同的元胞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820388/