gpt4 book ai didi

java - 如何抛硬币并显示反面和正面计数?

转载 作者:行者123 更新时间:2023-12-01 23:04:18 25 4
gpt4 key购买 nike

我是 Java 的初学者,但仍然充满热情。我得到了这样的练习:“编写一个抛硬币的模拟器程序:抛硬币一千次,然后打印出出现反面的次数和出现正面的次数”这就是我到目前为止所尝试做的。

import java.util.Random; 
import java.util.regex.Pattern;

public class coin {

public static void main( String [] args ) {

Random r = new Random();
Pattern tail = Pattern.compile("Tail+");
Pattern head = Pattern.compile("Head+");
String flips = "";

for (int i = 0; i < 1000; i++) {
flips += r.nextInt(100) % 2 == 0 ? "Head" : "Tail";
}
String[] heads = head.split( flips );
String[] tails = tail.split( flips );
//Display
System.out.println("Times head was flipped:" + heads.length);
System.out.println("Times tail was flipped:" + tails.length);
}
}

该程序似乎正在运行,但它总是给我几乎一对数量的正面和反面,总数超过 1000,至少 1 或更多。请问,有人有解决这个问题的办法吗?我哪里错了?谢谢

最佳答案

您可以在单独的变量中跟踪计数,而不是将结果附加到字符串中,然后拆分字符串并计算“Head”/“Tail”的出现次数:

int headCount = 0;
int tailCount = 0;

for (int i = 0; i < 1000; i++) {
if(r.nextInt(100) %2 == 0)
{
headCount++;
}
else
{
tailCount ++;
}

System.out.println("Times head was flipped:" + headsCount);
System.out.println("Times tail was flipped:" + tailCount);

}

关于java - 如何抛硬币并显示反面和正面计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com