2013年11月6日
摘要: 《编程珠玑》有一题,需要生成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)