等概率不重复的生成随机数应该是在平时开发中常见的,也是面试中常问的基础之一。有多种实现方式,有人人都可以想到的,也有不容易想到的巧妙算法,那么当有人问你哪个实现方式更好的时候你该怎么回答呢?回答巧妙的算法比普通算法好?答案显而易见,首先要搞清楚应用场景和要解决的问题。这样才能判断一个算法或者方案的合适与否。

  接下来明确问题、提出多个解决方法,最后对比每个方法的优劣与使用场景。

  要求:

  可能有些具体的场景和问题需求都不一样,可以统一:在一定范围内等概率不重复的生成有限个随机数。具体的可以定义为,在[m,n]之间等概率的生成k个不相同的随机数。

   设计与实现:

  

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式