摘要:
《编程珠玑》有一题,需要生成0~10^7的不重复随机数。最简单最直接的方法是,每次生成一个,然后和已经生成的进行比较,如果有了,那就重新生成。但一个显然的事实是,如果我要产生很多的数,越到后面所要花费的时间将越多。如何又快又好的产生呢?我们可以换个角度考虑问题,每次随机产生的可以不是具体的数,而是数在数组中的位置。算法的示意图如下:#define MAXINT (10000000)void myswap(int &a,int &b);void getRandoms(int k); void myswap(int &a,int &b){ int tmp=a; a= 阅读全文
posted @ 2013-11-06 19:30
裴银祥的博客园
阅读(359)
评论(0)
推荐(0)
浙公网安备 33010602011771号