Random产生随机数模拟投掷硬币

上概率论那会,“猪”老师曾在课上这么表示过:你透支一枚硬币,投掷的次数越多,正面反面各自出现的概率越接近二分之一。
当时呢就想:真的会是这样么?


可我也不像贝叶斯这样的人啊!不喜欢钻研这些问题呢!
今天想到可以用Random()来模拟这个实验啊!

总的来说就是产生01两个随机数并统计他们出现的次数



没啥特别的思路,就直接贴代码了!

package cn.edu.nuist.march;

import java.util.*;

public class Coin {

public static void main(String[] args){
	System.out.print("(j正j反,1正0反)您想投掷硬币的次数为:");
	int a,count = 0;                //count作为统计正面出现的次数
	Scanner r = new Scanner(System.in);
	a = r.nextInt();                //a表示从键盘输入要投掷的次数
	for(int i = 0;i < a;i++)
	{
	int n = new Random().nextInt(2)+1;    //随机产生1,2这两个数
//	System.out.print(n-1);          //此处将n-1便可产生0,1两个数。
	if(n == 1)                    //我有一个小伙伴曾告诉我,男人
		count++;                  //就像一枚硬币,前面是个1,后面是朵“0”。
	}                               //(有奖问答,女人像啥呢?)
	System.out.println();           
	System.out.println("投掷" + a + "次共有" + count + "次是正面,"+(a-count)+"次是反面");
	                                //这个不用解释了吧!
}
}

咱们来看看试验结果:
总次数    正面朝上    反面朝上
   10            3                7
   50           19              30
  100          53              47

。。。。。。

10000       4999         5001
100000    50078       49922

你们看,是不是我老师说得那个理!!!(哈哈哈哈,这些数据就是我瞎编的,不信你看第二行数据,一群小笨蛋)

开玩笑,开玩笑!

关于Random().nextLine(2)+1,Random().nextLine(n),产生0-(n-1)之间的随机数,所以当n为1时,产生的是0-1之间的随机数。。。。。。所以我想要的是你们能自己将代码敲一遍,自己亲自动手试一下。哈哈哈哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值