不重复的随机整数续篇。
hayai 2003-07-17 07:08:26 刚才有一帖子迎来一些争议,我认为,完全是搂主的表达能力有问题。
什么叫“怎样产生一个不重复的随机整数”?
首先,如果产生一个整数,讨论什么重复不重复?
其次,如果产生n个整数,那么整数范围又是多少呢,搂主不懂得把它表明。取random integer [0,100) 300个,如果不可以重复,搞收取给我看看。你说是不是他表达能力有问题?
下面说一个算法,去random integer[0,m)n个,n <= m;保证不重复。
int[] aryAll = new int[m];
for (int i = 0; i < m; i++)
aryAll[i] = i;
for (int i = 0; i < m; i++)
{
int ind = (int)(Math.random()*m);
int temp = aryAll[i];
aryAll[i] = aryAll[ind];
aryAll[ind] = temp;
}
Now, the aryAll has been randomized. 别的不用讲了吧。