作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
我是一名优秀的程序员,十分优秀!