Random随机数类

发表时间:2017-05-09 12:42:16 浏览量( 19 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:

一、Random随机数类

1、简介

Random随机数类是一个非常简单和实用类,用于生成伪随机数,在一些游戏获得某些应用中都会大量使用到随机数,构造方法有两个,分别是:

Random()  创建一个新的随机数生成器。 

Random(long seed)   使用单个 long 种子创建一个新的随机数生成器。 

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列,所以一般我们在一段程序中使用一个Random示例,或者为每个Random示例使用不同的种子。

我们在讲解Math类的时候也讲过一个随机方法random(),这个方法事实上也就是使用Random类实现的。事实上使用Math.random()可能还更容易点。

2、随机数的常用方法:

protected  int next(int bits) 

          生成下一个伪随机数。 

 boolean nextBoolean() 

          返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。 

 void nextBytes(byte[] bytes) 

          生成随机字节并将其置于用户提供的 byte 数组中。 

 double nextDouble() 

          返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 

 float nextFloat() 

          返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。 

 double nextGaussian() 

          返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。 

 int nextInt() 

          返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 

 int nextInt(int n) 

          返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。 

 long nextLong() 

          返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。 

 void setSeed(long seed) 

          使用单个 long 种子设置此随机数生成器的种子。 

二、示例

生成10个100以内的随机数,代码如下:

 public class Bac {

	public static void main(String[] args) {
		// System.out.println(Math.random());//<1
		// 随机打印 1 -- 10
		Random random = new Random(System.currentTimeMillis());
		for (int i = 0; i < 10; i++) {
			System.out.println(random.nextInt(100));
		}
	}

}

完成一个玩筛子的游戏。

代码如下:

   public static void main(String[] args) {
		//
		Scanner scanner = new Scanner(System.in);
		System.out.println("买大还是小:");
		String input = scanner.nextLine();

		// 随机生成三个数 1- 6
		Random random = new Random(System.currentTimeMillis());// 以当前时间作为种子
		int num1 = random.nextInt(6) + 1;
		int num2 = random.nextInt(6) + 1;
		int num3 = random.nextInt(6) + 1;

		// 测试:
		System.out.println(num1 + ":" + num2 + ":" + num3);

		// 判定
		String result;
		if (num1 == num2 && num1 == num3) {
			System.out.println("豹子");
			result = "豹子";
		} else if (num1 + num2 + num3 > 9) {
			System.out.println("大");
			result = "大";
		} else {
			System.out.println("小");
			result = "小";
		}

		// 赢了吗?
		if (input.equals(result)) {
			System.out.println("赢了");
		} else {
			System.out.println("输了");
		}
	}

运行代码,要先输入大小,然后程序随机生成三个数,并判断输赢。

attcontent/cb7459e2-202d-48ac-a573-cddb9b019a9e.png