【Java】随机数生成

在回答网友的问题时,才发现自己对随机数了解的太少了。这里把自己的代码贴上来,以后再连续打印随机数的时候,就能用到了。

其实,无论怎么做,都是伪随机数吧,只不过生成随机数的公式不是人可以一下子计算出来的,也就是因为人不可迅速预见这个值,才叫它随机数吧。吐舌头

package com.bobo.java;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

public class HelloWorld {//不要在意我的类名,这是我直接改了HelloWorld
	private static int i = 0;//全局静态变量,用来统计打印次数
	public static void main(String[] args){
		Random r = new Random();//随机数生成。我试过了Math.random(),
		//和这个一样,如果按照我之前的方法,六个数打印出来都一样。
		Timer timer = new Timer();//所以我想到了计时器
		TimerTask tt = new TimerTask() {//计时器定期执行的任务写在下面的run()里。
			@Override
			public void run() {
				//以后会定时执行这个run方法,所以外面再写多少代码都白搭,不会读的。
				if(HelloWorld.i>4){//本来写了小于5,但发现打印了7个数,下面我会提及为什么写4
					timer.cancel();//取消计时器任务
				}
				int a=0;
				while(a<100){//随机的数小于100时重新随机
					a=r.nextInt(201);//随机数的范围是0到201(不包括201)
					if(a>99){//随机数在[100,200]之间的时候打印
						System.out.println(a);
						HelloWorld.i++;//累加打印次数
					}
				}
			}
		};
		/*下面是计时器循环执行任务,参数分别对应TimerTask对象(run方法里是要执行的代码)、
		 * int型数值(表示从现在起等待多少毫秒执行任务)、int型数值(表示从两次任务之间等待的间隔时间)
		 * 所以下面这句代码一执行,首先等待1毫秒后执行tt.run(),然后等待3000毫秒后再等待1毫秒执行tt.run()...
		 */
		timer.schedule(tt, 1, 3000);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值