Math.random()的⽤法
Math.random( ) 的使⽤
1.介绍:
Math.random()是令系统随机选取⼤于等于 0.0 且⼩于 1.0 的伪随机 double 值
2.使⽤⽅法:
例:
int num = (int)(Math.random()*2+1)
//以上代码即设置⼀个随机1到3(取不到3)的变量num。
例:
【应⽤场景描述:】
⽤Math类的random()⽅法产⽣⼀个字符,若该字符是⼀个⼤写英⽂字母,则输⼊ “Yes!”,否则输出“NO”。
random()⽅法产⽣的随机数在0.0和1.0之间,乘以128后,其值在0.0和128.0之间,将它转换为char类型后,⽤if来判断是否在’A’和’Z’之间。
public class IsUpper{
public static void main(String [] args){
char ch;
ch = ( char ) ( Math.random() * 128);
if ( ch >= 'A' && ch <= 'Z'){
System.out.println("Yes!");}
else{
System.out.println("No!");}
}
}
3.总结归纳:
//产⽣⼀个[0,1)之间的随机数。
Math.random():
//返回指定范围的随机数(m-n之间)的公式:
Math.random()*(n-m)+m;
或者
Math.random()*(n+1-m)+m
4.Math类的random()⽅法
Math类的random()⽅法可以⽣成⼤于等于0.0、⼩于1.0的double型随机数。
Math.random()⽅法语句基础上处理可获得多种类型、或任意范围的随机数。
公式:
int num=(int)(Math.random()*n); //返回⼤于等于0⼩于n之间的随机数
int num0=m+(int)(Matn.randon()*n); //返回⼤于等于m⼩于m+n(不包括m+n)之间的随机数
例如:我们需要取2~22之间的偶数
public class MathRandomDemo{
public static int GetevenNum(double num1,double num2){
int s=(int)num1+(int)(Math.random()*(num2-num1));
if(s%2==0){
return s;
}
else
retuen s+!;
}
public static void main(String[] args){
System.out.println("任意⼀个"+num1+"~"+num2+"之间的偶数:"+GeteneNum(2,22));
}
}
还可以随机⽣成字符
例如:
1.随机⽣成a~z之间的字符
(char)('a'+Math.random()*('z'-'a'+1));
2.随机⽣成cha1~cha2的字符
(char)(cha1+Math.random()*(cha2-cha1+1));
5.Random类⽣成随机数
除了Math类的Random()⽅法可以获取随机数之外,还可以Java.util.Random类,可以通过实例化⼀个Random对象创建⼀个随机数⽣成器。
1.语法:
Random ran=new Random();
Random类的实例对象以这种形式实例化对象时,Java编译器以系统当前时间作为随机数⽣成器的种⼦,因为每时每刻的时间都不可能相同,所以产⽣的随机数也不同。如果运⾏速度太快,也会产⽣两次运⾏结果相同的随机数。
2.可以在实例化Random类对象时,⾃定义随机数⽣成器的种⼦。
语法:
Random ran=new Random(seedValue);
Random类中还提供各种类型随机数的⽅法:
nextInt():返回⼀个随机整数(int)
nextInt(int n):返回⼤于等于0、⼩于n的随机整数(int)
nextLong():返回⼀个随机长整型值(long)
nextBoolean():返回⼀个随机布尔型值(boolean)
nextFloat():返回⼀个随机浮点型值(float)
nextDouble():返回⼀个随机双精度型值(double)
nextGaussian():概率密度为⾼斯分布的双精度值(double)
nextint()方法例
import java.util.Random;
public class Demo{
public static void main(String[] args){
Random ran=new Random();
System.out.println("产⽣⼀个随机整数:"+lnt()); }
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论