知识大全 生成8位随机不重复的数字编号
Posted 数字
篇首语:虽然狠努力,练习着忘记,我的心却还没答应可以放弃了沵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 生成8位随机不重复的数字编号相关的知识,希望对你有一定的参考价值。
生成 位随机不重复的数字编号
package mon util;
import java util Arrays;
import java util Random;
/**
*
*/
public class RandomNumberGenerator
/**
* 这是典型的随机洗牌算法
* 流程是从备选数组中选择一个放入目标数组中 将选取的数组从备选数组移除(放至最后 并缩小选择区域)
* 算法时间复杂度O(n)
* @return 随机 为不重复数组
*/
public static String generateNumber()
String no= ;
//初始化备选数组
int[] defaultNums = new int[ ];
for (int i = ; i < defaultNums length; i++)
defaultNums[i] = i;
Random random = new Random()
int[] nums = new int[LENGTH];
//默认数组中可以选择的部分长度
int canBeUsed = ;
//填充目标数组
for (int i = ; i < nums length; i++)
//将随机选取的数字存入目标数组
int index = random nextInt(canBeUsed)
nums[i] = defaultNums[index];
//将已用过的数字扔到备选数组最后 并减小可选区域
swap(index canBeUsed defaultNums)
canBeUsed ;
if (nums length> )
for (int i = ; i < nums length; i++)
no+=nums[i];
return no;
private static final int LENGTH = ;
private static void swap(int i int j int[] nums)
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
public static String generateNumber ()
String no= ;
int num[]=new int[ ];
int c= ;
for (int i = ; i < ; i++)
num[i] = new Random() nextInt( )
c = num[i];
for (int j = ; j < i; j++)
if (num[j] == c)
i ;
break;
if (num length> )
for (int i = ; i < num length; i++)
no+=num[i];
return no;
public static void main(String[] args)
for (int i = ; i < ; i++)
// System out println(generateNumber())
System out println(generateNumber ())
cha138/Article/program/Java/hx/201311/26871
相关参考