【发布时间】:2014-04-08 21:47:50
【问题描述】:
提前感谢您花时间查看我的问题。任何有相同问题的人希望我们能找到解决方案...
所以基本上我有一个应用程序可以同时旋转 2 个硬币并显示结果。
此方法生成第一枚硬币...
public void coinResult1(){
ImageView coin1View = (ImageView) findViewById(R.id.coin1);
Random r = new Random();
int coin1result = r.nextInt(2);
if (coin1result == 0){
coin1View.setBackgroundResource(R.drawable.coinheads);
coinresult1 = 0;
}
else if (coin1result == 1) {
coin1View.setBackgroundResource(R.drawable.cointails);
coinresult1 = 1;
}
}
这是第二枚硬币
public void coinResult2(){
ImageView coin2View = (ImageView) findViewById(R.id.coin2);
Random r = new Random();
int coin2result = r.nextInt(2);
if (coin2result == 0){
coin2View.setBackgroundResource(R.drawable.coinheads);
coinresult2 = 0;
}
else if (coin2result == 1) {
coin2View.setBackgroundResource(R.drawable.cointails);
coinresult2 = 1;
}
}
这与按钮的 onclick() 相关联,用于检查玩家选择的结果
public void checkResult(){
coinResult1();
coinResult2();
coinResult = coinresult1 + coinresult2;
if (coinResult == playerSelection){
playerWins();
buttonsReset();
}
else {
playerLost();
buttonsReset();
}
}
现在我唯一的问题是... 两枚硬币1000次压榨的结果是这样的…… HeadsHeads 54%
头尾 2%
TailsTails 44%
1000000 次旋转的百分比大致相同
当每个硬币结果单独计算时
COIN1 正面 53% 反面 47%
COIN2 正面 48% 反面 52%
现在我的朋友说他们的赔率有问题....因为 HeadsTails 的百分比不够高,他预计每个随机组合的概率接近 33%
代码似乎有利于 HeadsHeads 和 TailsTails 或 HeadsTails .....我尝试了几次,但一直得到低百分比的 HeadsTails
任何人都可以对正在发生的事情有所了解......以及导致 HeadsTails 很少出现的原因是什么?
希望尽快回复
【问题讨论】:
-
Random的实例默认使用系统时间播种。如果恰好在一毫秒内创建了两个实例,它们将有效地生成相同的伪随机数。
标签: java android random probability