当前位置: 首页 > news >正文

生成不重复的随机数(待完善)

 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             //还有其他的方法,还没有整理

 

转载于:https://www.cnblogs.com/zhengfengyun/p/5134374.html

相关文章:

  • 登录流程-1
  • C#通过指针读取文件
  • C# 基础数据与Byte
  • mysql 分页sql
  • SQL Server 2008数据库邮件配置及应用
  • vim 强大复制链接
  • nginx+fpm报499错误的解决方案
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • Linux curl命令
  • 程序员眼中的英文单词是这样的
  • VMware Horizon view打印机出现多个副本
  • 十年工作总结(一)
  • window下安装scala步骤
  • XenServer体系架构解析
  • RFC2889转发性能測试用例设计和自己主动化脚本实现
  • conda常用的命令
  • Java超时控制的实现
  • JS题目及答案整理
  • MySQL数据库运维之数据恢复
  • REST架构的思考
  • swift基础之_对象 实例方法 对象方法。
  • Tornado学习笔记(1)
  • Vim Clutch | 面向脚踏板编程……
  • 前端性能优化——回流与重绘
  • 实习面试笔记
  • 探索 JS 中的模块化
  • 通信类
  • 学习使用ExpressJS 4.0中的新Router
  • 赢得Docker挑战最佳实践
  • raise 与 raise ... from 的区别
  • 阿里云服务器购买完整流程
  • 从如何停掉 Promise 链说起
  • #pragma once与条件编译
  • #pragma pack(1)
  • $jQuery 重写Alert样式方法
  • $L^p$ 调和函数恒为零
  • (C语言)字符分类函数
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (转载)(官方)UE4--图像编程----着色器开发
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET delegate 委托 、 Event 事件
  • .Net 中Partitioner static与dynamic的性能对比
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • ?.的用法
  • @media screen 针对不同移动设备
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BZOJ1053][HAOI2007]反素数ant
  • [BZOJ4010]菜肴制作