我在思考抓取唯一随机数的最优雅方式是什么?
目前,当我需要随机唯一数字时,我使用while循环来检查是否已经使用过该随机数,以确保它是唯一的。
代码如下:
int n = getRandomNumber % [Array Size];
for each ( Previously used n in list)
Check if I've used n before, if I have...try again.
有很多方法可以解决这个线性O(n/2)问题,我只是想知道是否有一种优雅的方式来解决它。试图回想起MATH115离散数学课程中老师是否讲过与这个看似琐碎的问题有关的任何内容。
我现在想不出来,也许一旦我喝了咖啡,我的大脑就会因为咖啡而产生的高智商而理清思路。