Java—5种⽣成随机数的⽅法5种⽣成随机数的简单⽅法
和⼀篇⼤佬的⽂章
⽅法①
通过java.Math包的random⽅法得到1-10的int随机数
公式:
最⼩值—最⼤值(整数)的随机数
(类型) 最⼩值+Math.random()*最⼤值
1 2 3 4 5 6 7 8 9 10 11 12 13import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
for (int i=0;i<5;i++)
{
System.out.println((int)(1+Math.random()*10)); int k;
k=(int)(1+Math.random()*10);
}
}
}
⽅法②
借助java.util.Random类来产⽣⼀个随机数发⽣器,也是最常⽤的⼀种,构造函数有两个,Random()和Random(long seed)。第⼀个就是以当前时间为默认种⼦,第⼆个是以指定的种⼦值进⾏。产⽣之后,借助不同的语句产⽣不同类型的数。
种⼦就是产⽣随机数的第⼀次使⽤值,机制是通过⼀个函数,将这个种⼦的值转化为随机数空间中的某⼀个点上,并且产⽣的随机数均匀的散布在空间中。以后产⽣的随机数都与前⼀个随机数有关
1 2 3 4 5 6import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
6 7 8 9 10 11 12 13 14 15 {
Random r = new Random();
for(int i=0 ; i<5 ; i++)
{
int ran1 = r.nextInt(100);//种⼦:100 System.out.println(ran1);
}
}
}
注:类似的⽅法可参考
⽅法③
1. ⽣成随机数需要使⽤到Java⼯具类中的Random类。
2. 要求是随机x到y之间的整数,即指定范围,则使⽤Random类中的nextInt(int n)⽅法。
3. 该⽅法⽣成从0(包括)到n(不包括)之间的随机整数,是⼀个伪随机数,并不是真正的随机数。
4. 若x不为0,则需要在随机结果后加上x。参数n的值也需要加上1后减去x。最后结果才符合要求的范围。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17import java.util.Random;
public class RandomDemo {
public static final int START = 50; //定义范围开始数字
public static final int END = 99; //定义范围结束数字
public static void main(String[] args) {
//创建Random类对象
Random random = new Random();
//产⽣随机数
int number = Int(END - START + 1) + START;
//打印随机数
System.out.println("产⽣⼀个"+START+"到"+END+"之间的随机整数:"+number); }
}
注:更多⽅法可参考
⽅法④
返回的数值是 [ 0.0 , 1.0 ) 的double型数值,由于double类数的精度很⾼,可以在⼀定程度下看做随机数,借助(int)来进⾏类型转换就可以得到整数随机数了
1 2 3 4 5 6 7 8public static void main(String[] args)
{
for (int i = 1; i <= 10; i++) {
int max=99,min=10;//⽣成两位随机正整数
int ran2 = (int) (Math.random()*(max-min)+min); System.out.println(ran2);
}
}
⽅法⑤
返回从1970年1⽉1⽇0时0分0秒(这与OS有关)到现在的⼀个long型的毫秒数,取模之后即可得到所需范围内的随机数
1 2 3 4 5 6 7 8public static void main(String[] args)
{
int max=100,min=1;
nextint()方法long randomNum = System.currentTimeMillis(); int ran3 = (int) (randomNum%(max-min)+min); System.out.println(ran3);
}
⼤佬的⽂章
这个⼤佬【】的⽂章贼详细,可以好好琢磨琢磨
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论