【发布时间】:2021-11-04 04:02:59
【问题描述】:
我想掷硬币并生成正面或反面。 heads = 0 和 tails = 1。
然后它将更新一个数组,其中索引 0 是翻转的正面数,索引 1 是翻转的反面数。
但是,我的代码要么全部正面,要么全部反面。 Math.random() 号码生成器有问题吗?
import java.util.Random;
import java.lang.Math;
class FlipCoin
{
public static void main(String[] args)
{
int[] tracker = new int[2];
int heads = 0;
int tails = 1;
int tosses = 10;
coinFlip(tracker, heads, tails, tosses);
//System.out.printf()
}
public static void coinFlip(int[] tracker, int heads, int tails, int tosses)
{
int flips =(int)(Math.random());
for(int x = 0; x <= tosses; x++)
{
if (flips == heads)
{
tracker[0] ++;
System.out.println("You flipped heads!");
}
else if (flips == tails)
{
tracker[1] ++;
System.out.println("You flipped tails!");
}
}
for(int i = 0; i < tracker.length; i++)
{
System.out.println(tracker[i] + " ");
}
}
}
【问题讨论】:
-
您计算了一个随机数一次,然后循环
tosses + 1次以计算相同的值。将int flips =(int)(Math.random());移动到您的循环中。而且,如果您只想计算tosses次,则使用x < tosses而不是x <= tosses。 -
我按照你说的做了,现在只是摇头@paddy
-
我能够通过使用 int flips =(int)(Math.random()*2); 来修复它谢谢!