Random的两种简单方式:猜数字(1-100)

import java.util.Scanner;
import java.util.Random;
public class Guess{
	public static void main(String[] args){
			//int number = (int)(Math.random()*100 +1);     
/*			java.lang.Math类中的random()方法;调用这个Math.random()函数能够返回带正号的double值
,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。*/
			
			Random r = new Random();
			int number  = r.nextInt(100)+1;

			Scanner sc  = new Scanner(System.in);
			while(true){
				System.out.println("Please enter your guess:");
				int inputNumber = sc.nextInt(); 
				if(inputNumber > number){
					System.out.println("your guess number too big");
				}else if(inputNumber < number){
					System.out.println("Your guess number too small");
				}else{
					System.out.println("Congratulations on your guess!");
					break;
				}
			}
	}
}

/*
1.java.Math.Random()实际是在内部调用java.util.Random()的,它有一个致命的弱点,它和系统时间有关,也就是说相隔时间很短的两个random比如:
double a = Math.random();
double b = Math.random();
即有可能会得到两个一模一样的double。
2.java.util.Random()在调用的时候可以实现和java.Math.Random()一样的功能,
而且他具有很多的调用方法,相对来说比较灵活。所以从总体来看,使用java.util.Random()会相对来说比较灵活一些。

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)://返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。
.long nextLong()://返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
.void setSeed(long seed)://使用单个 long 种子设置此随机数生成器的种子。


版权声明:本文为weixin_43863363原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。