【发布时间】:2022-01-02 09:01:15
【问题描述】:
在我在这里编写的这段代码中,用户输入他们是否想在掷硬币游戏中选择正面或反面。我想记录出现正面或反面的次数,并在每次变化时输出。经过数小时的尝试和搜索,我无法完美地理解它,所以如果有人能让我知道我可以利用什么,请告诉我。
import java.util.Random;
import java.util.Scanner;
public class CoinToss {
private enum Coin {
Head, Tail
}
public static void main(String[] args) {
CoinToss game = new CoinToss();
game.startGame();
}
private void startGame() {
Scanner scanner = new Scanner(System.in);
Coin guess;
while (true) {
System.out.print("Enter your guess whether the coin will be heads or tails. Type 1 for heads, 2 for tails, or 3 to quit: ");
String choice = scanner.nextLine();
if (choice.equalsIgnoreCase("3")) {
break;
} else if (choice.equalsIgnoreCase("1")) {
guess = Coin.Head;
} else if (choice.equalsIgnoreCase("2")) {
guess = Coin.Tail;
} else {
System.out.println("Please select either heads tails or quit.");
continue;
}
Coin toss = tosscoin();
if (guess == toss) {
System.out.println("You guessed correctly!");
} else {
System.out.println("You guessed incorrectly");
}
}
scanner.close();
}
private Coin tosscoin() {
Random r = new Random();
int sideup = r.nextInt(2);
if (sideup == 1) {
return Coin.Head;
} else {
return Coin.Tail;
}
}
}
【问题讨论】:
-
这不起作用怎么办?
-
它正在工作,如果我没有把我的问题说清楚,对不起。当用户继续选择时,我试图记录每边出现的次数。
-
很抱歉,您在这里所做的似乎主要揭示了计算机上“非随机”随机数是如何从真正随机的结果中产生的。数学/统计“二项式分布”(又名钟形曲线)是这个问题的真正随机(非计算机随机)答案