public class RandomNumberGenerator {
/**
* 这是典型的随机洗牌算法。 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域) 算法时间复杂度O(n)
*
* @return 随机8为不重复数组
*/
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 final int LENGTH = 8;
private static void swap(int i, int j, int[] nums) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
public static String generateNumber2() {
String no = "";
int num[] = new int[8];
int c = 0;
for (int i = 0; i < 8; i++) {
num[i] = new Random().nextInt(10);
c = num[i];
for (int j = 0; j < i; j++) {
if (num[j] == c) {
i--;
break;
}
}
}
if (num.length > 0) {
for (int i = 0; i < num.length; i++) {
no += num[i];
}
}
return no;
}
public static void main(String[] args) {
Map<String, String> mpa = new HashMap<String, String>();
for (int i = 0; i < 600; i++) {
// System.out.println(generateNumber());
String idString = generateNumber2();
mpa.put(idString, idString);
System.out.println(idString);
}
System.out.println(mpa.size());
}
}
分享到:
相关推荐
Random Number Generator v1.0 <br>一个随机数生成的小工具,可以用在需要随机数的地方 例如随机安排考场座位, <br>功能: 1、生成数列的随机排序 2、指定前缀 3、关联目标 4、结果保存为文本...
A Random Number Generator Patrick Schaumont Spring 2008 ECE 4514 Digital Design II Lecture 6: A Random Number Generator in Verilog in Verilog
RandomNumberGenerator_111243.exe
欧母龙PLC例程源码Random Number Generator提取方式是百度网盘分享地址
该应用程序的目的是试验有意识意图的影响。 受全球意识项目启发: :
使用 Java 的 Random 类( )和 nextInt(int) 方法来生成数字,如果您对什么感兴趣该应用程序用于生成这些数字。 每次按下按钮时都会生成一个新的 Random 类,因此不会使用两次相同的种子。 由开发 泰勒·霍兰德 - ...
欧母龙PLC例程_本资料仅供学习参考
使用声卡作为熵源的C ++ Windows库,用于生成真正的随机数。
斯威夫特exntension为RandomNumberGenerator 。 描述 任何RandomNumberGenerator都会变得uniform: Uniform且normal: Normal 。 Uniform和Normal具有多个next功能。 例子 // Get random float number from uniform ...
True Random Number Generator Min: Max: Result:
基于振荡器抖动的硬件随机数发生器
简单的随机数生成器扩展谷歌Chrome。 支持语言:English (United States)
讨论了生成0-1之间均匀分布随机数的一些算法,进而给出了由0-1之间均匀分布生成指数分布、正态分布、二项分布等常用分布的一般算法。
真正的量子随机数生成器。 该随机数生成器使用ANU Quantum随机数服务器。 此扩展提供了访问真正随机数的权限,并允许用户指定随机数的范围。 该扩展名中的随机数对于每个用户都是唯一的,并且可以安全地传输。...
生成具有指定长度的唯一数字的程序。 生成唯一序列号的程序。
RandomNumberGenerator使用Random.org提供的API根据大气噪声生成一个真正的随机数序列
Random Number Generator
这个 MATLAB 脚本实现了 Grogono 线性全等随机数生成器。 它需要一个种子并生成任意数量的伪随机数。
使用随机数生成器生成实体形状。 包括的实体形状是: 1) 长方体/立方体2) 球体3) 锥体4)圆锥台5) 金字塔6) 锥台7) 气缸 将其作为了解如何为 rand() 函数创建约束以获得所需结果的练习。