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、结果保存为文本...
在IT行业中,随机数生成器(Random Number Generator,RNG)是编程和计算机科学中的一个核心概念,尤其在模拟、加密、游戏开发以及各种算法中都有广泛应用。在"欧母龙PLC例程"这个场景中,随机数生成器可能用于自动...
《探究randomNumberGenerator:意识与随机数生成器的交集》 在信息技术的广阔领域中,我们时常会遇到一些令人深思的实验性项目。"randomNumberGenerator"就是这样一款应用程序,它的目标并非单纯的技术实现,而是...
根据提供的文件信息,我们可以深入探讨与“欧母龙PLC例程源码RandomNumberGenerator”相关的知识点,主要包括以下几个方面: ### 一、欧母龙PLC简介 欧母龙(Omron)是一家全球知名的自动化控制产品生产商,其PLC...
RandomNumberGenerator_111243.exe
随机数生成器(Random Number Generator,简称RNG)是指能够产生一系列无法预测的数字的设备或算法。根据生成随机数的方法不同,随机数生成器可以分为物理随机数生成器和计算型随机数生成器两大类。物理随机数生成器...
硬件随机数生成器(Hardware Random Number Generator,HRNG)是一种用于生成不可预测、无偏的随机数字序列的设备。在信息安全领域,随机数是至关重要的,因为它们被广泛用于加密算法、密钥生成、安全协议以及各种...
2. 伪随机数生成器(Pseudo-Random Number Generator, PRNG):利用算法生成看起来像随机的数字序列,基于数学公式或计算方法,可以重复生成相同的序列,如果初始值(即种子)相同。 3. 伪随机数生成器的增强...
使用 Java 的 Random 类( )和 nextInt(int) 方法来生成数字,如果您对什么感兴趣该应用程序用于生成这些数字。 每次按下按钮时都会生成一个新的 Random 类,因此不会使用两次相同的种子。 由开发 泰勒·霍兰德 - ...
URANG,全称为"Unique Random Number Generator",是一款开源软件,专为生成具有指定长度的唯一数字序列而设计。在IT行业中,随机数生成器有着广泛的应用,例如在密码学、游戏开发、模拟仿真、数据加密等领域。URANG...
根据描述中的“True Random Number Generator”,我们可以推断“Numbergenerator”可能采用了TRNG,因为它提供了更高等级的随机性。 2. 实现方式:TRNG的实现通常涉及到硬件设备,这些设备能捕获自然界中的不可预测...
使用声卡作为熵源的C ++ Windows库,用于生成真正的随机数。
斯威夫特exntension为RandomNumberGenerator 。 描述 任何RandomNumberGenerator都会变得uniform: Uniform且normal: Normal 。 Uniform和Normal具有多个next功能。 例子 // Get random float number from uniform ...
Monkey Random Number Generator是一款针对PokerNow游戏平台的CRX扩展程序,主要功能是提供一个可靠的随机数生成器,确保在线游戏过程中的公平性。在IT领域,随机数生成器是至关重要的工具,尤其在游戏、加密算法、...
简单的随机数生成器扩展谷歌Chrome。 支持语言:English (United States)
在计算机中,通常通过线性同余法、Mersenne Twister算法或更现代的如PCG(Permuted Congruential Generator)等伪随机数生成器实现。这些算法可以确保生成的随机数在指定范围内均匀分布,即每个数出现的概率相等。 ...
真正的量子随机数生成器。 该随机数生成器使用ANU Quantum随机数服务器。 此扩展提供了访问真正随机数的权限,并允许用户指定随机数的范围。 该扩展名中的随机数对于每个用户都是唯一的,并且可以安全地传输。...
"Simple Random Number Generator Extension-crx插件"是专为Google Chrome浏览器设计的一个实用工具,旨在为用户提供方便快捷的随机数生成服务。这款插件主要针对那些需要在浏览器环境中进行快速实验、模拟或者数据...
本文将深入探讨标题提及的"RandomNumberGenerator",这是一种利用大气噪声来生成真随机数序列的方法,通过调用Random.org提供的API实现。 首先,让我们理解什么是真随机数。真随机数是不可预测的,它们源自物理现象...