zoukankan      html  css  js  c++  java
  • 生成不重复的随机数(待完善)

     1         // 方法一,用for循环,break跳出语句(不推荐,方法太笨,思路也不是很明确)
     2 
     3     public static void main(String[] args) {
     4 
     5         // 方法二 利用foreach和continue循环并跳出循环
     6 
     7         int[] c = new int[7];// 创建7个数的数列,这个地方可以不用定义数组
     8 
     9         Random ran1 = new Random(); // 实例化对象
    10 
    11         boolean bo = false; // 定义标识符来控制循环
    12 
    13         for (int i = 0; i < c.length; i++) { // 生成随机数列,并且一次性判断是不是有0和有没有相同的数
    14 
    15             // 利用遍历数组的方法判断是不是有重复的数字
    16 
    17             int t = ran1.nextInt(35);
    18 
    19             if (t == 0) { // 判断是不是有0这个数字
    20 
    21                 i--;
    22                 continue;
    23             }
    24             for (int y : c) {
    25 
    26                 if (y == t) {
    27 
    28                     bo = true;
    29                     break;
    30                 }
    31 
    32             }
    33             if (bo) {
    34 
    35                 i--;
    36                 continue;
    37             }
    38 
    39             c[i] = t;
    40         }
    41 
    42         for (int x1 : c) {
    43 
    44             System.out.print(x1 + " ");
    45         }
    46         System.out.println();
    47 
    48         // 利用index来判断是不是有相同的数列(推荐)
    49 
    50         String str = "";
    51 
    52         for (int i = 0; i < 7; i++) {
    53 
    54             int t = ran1.nextInt(35);
    55 
    56             if (t == 0) { // 判断是不是有0这个数字
    57 
    58                 i--;
    59                 continue;
    60             }
    61             if (str.indexOf(t + "") >= 0) { // 判断是不是有重复的数字
    62 
    63                 i--;
    64                 continue;
    65             }
    66             str = str + t + " ";
    67         }
    68         System.out.println(str);
    69 
    70         System.out.println("------------------");
    71 
    72         // 利用replace替换,这个方法虽然简单但是不是很好,每个数不是很随机了,还没有想到处理的方法
    73 
    74         String s = "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25"
    75 
    76                 + " 26 27 28 29 30 31 32 33 34 35";// 这种方法尽量不要用显得太Low了
    77 
    78         Random r = new Random();
    79 
    80         for (int i = 0; i < 100; i++) {
    81             int t1 = r.nextInt(36);
    82 
    83             if (t1 <= 9) {
    84 
    85                 s = s.replace("0" + t1 + " ", "");
    86             } else {
    87 
    88                 s = s.replace(t1 + " ", "");
    89             }
    90 
    91             if (s.length() <= 22) {
    92 
    93                 System.out.println(s);
    94                 break;
    95 
    96             }
    97             //还有其他的方法,还没有整理
  • 相关阅读:
    Easy-Transfer学习
    录音+语音转文字
    pyQt点击事件和数据传输
    第一个python-ui界面
    python写第一个网页
    pyhthon第一个小脚本——文件备份
    Stones HDU 1896
    Cow Sorting POJ 3270 & HDU 2838
    Stones
    大数相加
  • 原文地址:https://www.cnblogs.com/zhengfengyun/p/5134374.html
Copyright © 2011-2022 走看看