随机数生成器RandomNumberGenerator
2017-04-07 17:55
417 查看
public class RandomNumberGenerator { private static final int LENGTH = 8; /* *这是典型的随机洗牌算法。流程是从备选数组中选择一个放入目标数组中, *将选取的数组从备选数组移除(放至最后,并缩小选择区域) 算法时间复杂度O(n) */ public static String generateNumber() { String no = ""; //初始化备选数组 int[] defaultNums = new int[10]; for (int i = 0; i < defaultNums.length; i++) { defaultNums[i] = i; } Random random = new Random(); int[] nums = new int[LENGTH]; //默认数组中可以选择的部分长度 int canBeUsed = 10; //填充目标数组 for (int i = 0; i < nums.length; i++) { //将随机选取的数字存入目标数组 int index = random.nextInt(canBeUsed); nums[i] = defaultNums[index]; //将已用过的数组丢到备选数组的最后,并减小可选区域 swap(index,canBeUsed - 1,defaultNums); canBeUsed--; } if (nums.length > 0) { for (int i = 0; i < nums.length; i++) { no += nums[i]; } } return no; } /* *将已用过的数字丢到备选数组的最后,并减小可选区域 */ private static void swap(int i,int j,int[] nums) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } }
相关文章推荐
- cryptography 使用RandomNumberGenerator产生加密强随机数
- Q138:PBRT-V3,伪随机数发生器(pseudo-random number generator,RNG)(A.1.2章节)
- HP-UX Strong Random Number Generator与 /dev/random相关
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
- [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
- Random.org -- 真正的随机数生成器
- [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
- 67. 总结篇:面试中随机数"等概率"vs"不等概率"生成问题[random generator with equal or unequal probability]
- Pseduo Random Number Generator
- SQL SERVER – Random Number Generator Script – SQL Query
- Do I Have an RNG(Random Number Generator)?
- C++ - 随机数生成器(random-number generator) 的 详解 及 代码
- NS2进阶实例 8---RandomNumber Generation(NS2中随机数产生)
- oracle中to_number字符串转数字、max取最大值、dbms_random.value生成随机数及对小数做截取,四舍五入操作的函数
- Hackerrank Random Number Generator
- C++ - 随机数生成器(random-number generator) 的 详解 及 代码
- How to get random number within a range using C++ - 如何用C++获取一定范围内的随机数
- Random.org -- 真正的随机数生成器
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
- 不使用Math.random方法生成随机数(随机数生成器)