当前位置:首页 > Java技术 > Java随机数使用

Java随机数使用

2022年08月06日 19:47:27Java技术4

JAVA取随机数的三种方式:

  1. Math.random()
  2. System.currentTimeMillis()
  3. random.nextInt()

  废话不多说,看代码:

 

Java随机数使用 _ JavaClub全栈架构师技术笔记
 1 /**
 2      *取单个随机数
 3      *Math.random()取10~100之间随机数
 4      *Math.round()进行向上取整处理=>{3.5=>4}、{-3.5=>-3}
 5      *
 6      **/
 7     @Test
 8     public void test1(){
 9         int max=100;
10         int min=10;
11         int randomNumber = (int) Math.round(Math.random()*(max-min)+min); 
12         System.out.println("10~100之间随机数:"+randomNumber);
13     }
14     /**
15      * 取单个随机数
16      * System.currentTimeMillis()返回从1970年1月1号0点0分0秒到目前的一个long型的毫秒数
17      * 通过取模,限制随机数范围
18      * */
19     @Test
20     public void test2(){
21         int max=100;
22         int min=10;
23         long randomNum = System.currentTimeMillis();
24         int randomNumber = (int)(randomNum%(max-min))+min;
25         System.out.println("10~100之间随机数:"+randomNumber);
26     }
27     /**
28      * 取单个随机数
29      * Random是一个随机数发生器
30      * 有两种构造函数:Random()使用当前时间即System.currentTimeMillis()作为发生器的种子
31      * Random(long seed)使用指定的seed作为发生器的种子
32      * 再通过nextInt()、 nextLong()、nextFloat()、nextDouble()等获得不同类型随机数
33      * */
34     @Test
35     public void test3(){
36         int max=100;
37         int min=10;
38         Random random = new Random();  
39         int randomNumber =  random.nextInt(max)%(max-min+1) + min;  
40         System.out.println("10~100之间随机数:"+randomNumber);
41     }
View Code

 

 

JAVA取N个随机数的三种方法:

  1. 双重循环去重法
  2. HashSet
  3. 排除已随机的数法

 

Java随机数使用 _ JavaClub全栈架构师技术笔记
 1 /**
 2      * 取N个不同的随机数
 3      * 1.双重循环去重法
 4      * 进过第一重循环取值,另一重进行比较,去重
 5      * */
 6     public int[] randomCommon1(int min ,int max , int n){
 7         int[] result = new int[n]; 
 8         if(n>max-min+1||min>max){
 9             return null;
10         }
11         int count = 0;//记录数量
12         while(count<n){
13             int randomNumber = (int) Math.round(Math.random()*(max-min)+min);
14             boolean falg = true;
15             for(int i=0;i<n;i++){
16                 if(randomNumber == result[i]){
17                     falg = false;
18                     break;
19                 }
20             }
21             if(falg){
22                 result[count] = randomNumber;
23                 count++;
24             }
25         }
26         return result;
27     }
28     /**
29      * 取N个不同的随机数
30      * 2.HashSet
31      * 使用HashSet只允许存放不同值原理
32      * */
33     public void randomCommon2(int min,int max,int n,HashSet<Integer> set){
34         if(n>max-min+1||min>max){
35             return;
36         }
37         int randomNumber = (int) Math.round(Math.random()*(max-min)+min);
38         set.add(randomNumber);
39         if(set.size()<n){
40             randomCommon2(min,max,n,set);//递归
41         }
42     }
43     /**
44      * 取N个不同的随机数
45      * 3.排除已随机的数
46      * */
47     public static int[] randomArray(int min,int max,int n){  
48         int len = max-min+1;  
49           
50         if(max < min || n > len){  
51             return null;  
52         }  
53           
54         //初始化给定范围的待选数组  
55         int[] source = new int[len];  
56            for (int i = min; i < min+len; i++){  
57             source[i-min] = i;  
58            }  
59              
60            int[] result = new int[n];  
61            Random rd = new Random();  
62            int index = 0;  
63            for (int i = 0; i < result.length; i++) {  
64             //待选数组0到(len-2)随机一个下标  
65                index = Math.abs(rd.nextInt() % len); 
66                len--;//始终保持取值范围缩小,并保持替换值在改变
67                //将随机到的数放入结果集  
68                result[i] = source[index];  
69                //将待选数组中被随机到的数,用待选数组(len-1)下标对应的数替换  
70                source[index] = source[len];  
71            }  
72            return result;  
73     }  
74 
75     @Test
76     public void Test(){
77         //方法1:
78         int[] result1 = randomCommon1(0,10,5);
79         for(int i:result1){
80             System.out.print(i+"#");
81         }
82         System.out.println();
83         //方法2:
84         HashSet<Integer> set = new HashSet<Integer>();
85         randomCommon2(0,10,5,set);
86         for(int i:set){
87             System.out.print(i+"#");
88         }
89         System.out.println();
90         //方法3:
91         int[] result3=randomArray(0,10,5);
92         for(int i:result3){
93             System.out.print(i+"#");
94         }
95     }
View Code

 

结果:

Java随机数使用 _ JavaClub全栈架构师技术笔记
1 9#6#4#3#10#
2 1#4#8#9#10#
3 10#9#4#0#5#
View Code

 

作者:丿似锦
来源链接:https://www.cnblogs.com/zktww/p/8484656.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/18422.html

标签: Java随机数
分享给朋友:

“Java随机数使用” 的相关文章

java生成随机数

/** * 生成20位的随机数,用系统当前时间的毫秒数(13)+七位随机数 * @return */ public String generateStr() { StringBuffer v...

java产生随机数的方法

一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。 二.在java.util这个包里面提供了一个...

利用java随机数模拟求π的值

利用java随机数模拟求π的值

我们从小学的时候就已经熟知了π的值是介于3.1415926到3.1415927之间的一个无限不循环小数,今天我们就来利用java中的Math.random()这个随机数产生器来计算π的值,产生的数值范围为0~1。 用随机数来计算π的值可能...

Java 中随机数获取的方案

Java 中随机数获取的方案

一、方法 1、(数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例:(int)(1+Math.random()*(10-1+1)) 从1到10的int型随数 package com; public class test2 {...

java的random生成某个范围内的随机数

random,java,生成范围内的随机数,随机数 import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public...

Java获取随机数

方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例: (int)(1+Math.random()*(10-1+1)) 从1到1...

java byte 随机数

Java中想要生成一个指定范围之内的随机数字通常两种方法:调用 Math 类的 random() 方法 使用 Random 类。 Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 do...

java中自定义随机数据

要生成自定义随机数1或-1,您需要使用nextBoolean()。首先,循环并在每次迭代中创建一个Random对象-for (int i = 0; i  Random rand =&...

Java 随机数

Java 随机数

Java 随机数   本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMillis(...

Java产生两位随机数

Random random = new Random(); int ends = random.nexIn(99); String.format("%02d",ends);//如果不足两位,前面补0 作者:m0_67400972...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。