国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

生成8位隨機不重復的數字編號的方法

2019-11-26 15:58:04
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

package com.jjinfo.common.util;
import java.util.Arrays;
import java.util.Random;

/**
*
*/
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) {
for (int i = 0; i < 10; i++) {
// System.out.println(generateNumber());
System.out.println(generateNumber2());
}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万州区| 金塔县| 和田市| 绥滨县| 洞头县| 依安县| 洱源县| 宜州市| 城固县| 昌邑市| 银川市| 静乐县| 尤溪县| 中宁县| 隆子县| 阜康市| 鄂尔多斯市| 灌南县| 富阳市| 唐海县| 彭山县| 马鞍山市| 垫江县| 仙居县| 余庆县| 金坛市| 溆浦县| 威信县| 阿鲁科尔沁旗| 永宁县| 通榆县| 阜南县| 洛阳市| 樟树市| 洛阳市| 顺义区| 萨嘎县| 阿克| 邵武市| 措勤县| 霍城县|