Math类和Random类生成的随机数

Math类和Random类生成的随机数

一、Math类的random()方法

Math类的random()方法可以生成大于等于0.0、小于1.0的double型随机数。
Math.random()方法语句基础上处理可获得多种类型、或任意范围的随机数。
公式:
[java]  view plain  copy
  1. int num=(int)(Math.random()*n);         //返回大于等于0小于n之间的随机数  
  2. int num0=m+(int)(Matn.randon()*n);      //返回大于等于m小于m+n(不包括m+n)之间的随机数  
例如:我们需要取2~22之间的偶数
[java]  view plain  copy
  1. public class MathRandomDemo{  
  2. public static int GetevenNum(double num1,double num2){  
  3. int s=(int)num1+(int)(Math.random()*(num2-num1));  
  4. if(s%2==0){  
  5. return s;  
  6. }  
  7. else  
  8. retuen s+!;  
  9. }  
  10. public static void main(String[] args){  
  11. System.out.println("任意一个"+num1+"~"+num2+"之间的偶数:"+GeteneNum(2,22));  
  12. }  
  13. }  
还可以随机生成字符
例如:
1.随机生成a~z之间的字符
(char)('a'+Math.random()*('z'-'a'+1));
2.随机生成cha1~cha2的字符
(char)(cha1+Math.random()*(cha2-cha1+1));

二、Random类生成随机数

除了Math类的Random()方法可以获取随机数之外,还可以Java.util.Random类,可以通过实例化一个Random对象创建一个随机数生成器。
1.语法:
[java] view plain copy
  1. Random ran=new Random();  
ran:Random类的实例对象
以这种形式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间都不可能相同,所以产生的随机数也不同。如果运行速度太快,也会产生两次运行结果相同的随机数。

2.可以在实例化Random类对象时,自定义随机数生成器的种子。
语法:
[java] view plain copy
  1. Random ran=new Random(seedValue);  
ran:Random类的实例对象
seedValue:随机类生成器的种子。
[java]  view plain  copy
  1. Random类中还提供各种类型随机数的方法:  
  2. nextInt():返回一个随机整数(int)  
  3. nextInt(int n):返回大于等于0、小于n的随机整数(int)  
  4. nextLong():返回一个随机长整型值(long)  
  5. nextBoolean():返回一个随机布尔型值(boolean)  
  6. nextFloat():返回一个随机浮点型值(float)  
  7. nextDouble():返回一个随机双精度型值(double)  
  8. nextGaussian():概率密度为高斯分布的双精度值(double)  
例:
[java]  view plain  copy
  1. import java.util.Random;  
  2. public class Demo{  
  3. public static void main(String[] args){  
  4. Random ran=new Random();  
  5. System.out.println("产生一个随机整数:"+ran.nextlnt());  
  6. }  
  7. }  

你可能感兴趣的:(java)