您的位置:首页 > 其它

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

2018-03-28 10:55 246 查看
上概率论那会,“猪”老师曾在课上这么表示过:你透支一枚硬币,投掷的次数越多,正面反面各自出现的概率越接近二分之一。当时呢就想:真的会是这样么?
可我也不像贝叶斯这样的人啊!不喜欢钻研这些问题呢!今天想到可以用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         5001100000    50078       49922你们看,是不是我老师说得那个理!!!(哈哈哈哈,这些数据就是我瞎编的,不信你看第二行数据,一群小笨蛋)开玩笑,开玩笑!
关于Random().nextLine(2)+1,Random().nextLine(n),产生0-(n-1)之间的随机数,所以当n为1时,产生的是0-1之间的随机数。。。。。。所以我想要的是你们能自己将代码敲一遍,自己亲自动手试一下。哈哈哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: