题目:
给定数字N,N>0, 设计一个随机数生成器,运行该生成器N次,能够不重复地生成1,2,..,N。
思路1:
最简单的方法,首先定义一个随机数生成器,其可以生成1-N范围内的随机数。 第一次运行时生成一个随机数,然后记录该随机数已经生成过,例如,可以定义数组bool array[N]={false}, 第一次生成了x,则置array[x-1]=true; 第二次时,先生成一个随机数,然后检查是否已经了,如果是,则重新生成,直到生成一个没有生成过的为止。
缺点: 可能会花费很长时间,例如,前面千辛万苦生成了N-1个数之后,最后需要生成一个剩余的7,你可能运行1年也得不到这个7啊。 这是工程实践中的大忌!!!!!
思想:
开辟了辅助存储空间。
同类思想的应用举例:找出N个量表中的的公共元素中的思路1: