Java中“随机数”的产生--Math.random和Random的产生方法

Math.random

Math类中存在一种random()方法,用于产生随机的数字和字符

①随机数字的产生

random()语法
(int)(Math.random()*n):
返回大于等于0且小于n的随机数
m+(int)(Math.random()*n):
返回大于等于m且小于m+n(不包括m+n)的随机数
ps:如果要产生m到n之间的数:
代码为:m+(int)(Math.random()*(n-m))
程序演示:

public class 随机数 {
/*
 * 定义产生偶数的方法
 * @param num1起始范围参数
 * @param num2终止范围参数
 * @return 随机的范围内偶数
 */
	public static int GetEvenNum(double num1,double num2) {
		//产生num1~num2之间的随机值
		int s=(int)num1 + (int)(Math.random()*(num2-num1));
		if(s%2==0) {
			return s;
		}else
			return s+1;
	}
	public static void main(String[] args) {
		System.out.println("任意一个2-32之间的偶数:"+GetEvenNum(2,32));
	}
}

②随机字符的产生

固定字符段内的随机字符
如随机产生一个a-z之间的字符

(char)('a'+Math.random()*('z'-‘a’+1));

所以可以推出随机产生两个字符之间的字符为:

(char)('cha1'+Math.random()*(cha2-cha1+1));

程序演示:

/*定义获取任意字符之间的随机字符
 * 随机生成a-z之间的字符
 * (char)(‘a’+Math.random()*('z'-'a'+1))
 * 随机生成cha1-cha2之间的字符
 * (char)(cha1+Math.random()*(cha2-cha1+1))
 */
public class 随机字母 {
  public static char GetRandomChar(char cha1,char cha2) {
	  char s = (char)(cha1+Math.random()*(cha2-cha1+1));
	  return s;
  }
  public static void main(String[] args) {
	  //随机获得a-z之间的字符
	  System.out.println("任意小写字母"+GetRandomChar('a','z'));
	  //随机获得A-Z之间的字符
	  System.out.println("任意大写字母"+GetRandomChar('A','Z'));
	  //随机获得0-9之间的数字
	  System.out.println("0-9之间的任意数字:"+GetRandomChar('0','9'));
}
}

Random类获得随机数

在Random类中提供了获取各种数据类型随机数的方法,我用程序直接演示给大家看

import java.util.Random;
//引用java.util.Random类
public class Random类随机字符数字等的产生 {
   public static void main(String[] args) {
	Random r = new Random();//实例化一个Random类
	System.out.println("随机产生一个整数:"+r.nextInt());
	System.out.println("随机产生一个大于等于0小于10的整数"+r.nextInt(10));
	System.out.println("随机产生一个布尔Boolean型:"+r.nextBoolean());
	System.out.println("随机产生一个双精度型的值:"+r.nextDouble());
	System.out.println("随机产生一个浮点型的值:"+r.nextFloat());
}
}

结果如下:
随机产生一个整数:-1215968291
随机产生一个大于等于0小于10的整数1
随机产生一个布尔Boolean型:false
随机产生一个双精度型的值:0.05971188146365236
随机产生一个浮点型的值:0.9931316

发布了17 篇原创文章 · 获赞 10 · 访问量 1483

猜你喜欢

转载自blog.csdn.net/qq_42724864/article/details/104270767