标签: algorithm implementation permutation probability random-sample
到目前为止,我一直在使用一个列表来跟踪遇到的所有唯一号码。我使用随机数生成器来获得1到n之间的随机数。如果那个数字已经在我的列表中,那么我只是继续生成随机数,直到我遇到一个不在我的列表中的数字。当我得到一个不在我的列表中的新号码时,我将其添加到我的列表中并重复该过程,直到列表中的所有“n”号都存在。
显然,这种方法效率很低。有人可以提出一个有效的解决方案??
答案 0 :(得分:5)
Knuth's your man为此,虽然其他算法可用。
答案 1 :(得分:2)