zoukankan      html  css  js  c++  java
  • 160511、生成8位随机不重复的数字编号的方法

    import java.util.Random;

    public class RandomNumberGenerator {
    /**
    * 这是典型的随机洗牌算法。 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域) 算法时间复杂度O(n)
    * @return 随机8为不重复数组
    * @author RICK
    */
    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());
    }
    }
    }

  • 相关阅读:
    uiwebview底部黑边解决
    ssh连接速度慢解决
    rutime中动态调用类的方法
    performSelector may cause a leak because its selector is unknown解决
    alpha阶段 代码结构及技术难点简介
    第十二次小组会议记录
    【第三组】心·迹 Alpha版本 成果汇报
    数据库接口使用示例
    第十一次小组会议:进一步对接记录
    2018.6.4 ~ 6.10 周进度管理
  • 原文地址:https://www.cnblogs.com/zrbfree/p/5495741.html
Copyright © 2011-2022 走看看