gpt4 book ai didi

java - 有机会获得3连胜

转载 作者:行者123 更新时间:2023-12-01 11:58:47 29 4
gpt4 key购买 nike

我正在尝试模拟“3 面骰子”以及连续 3 次获得相同数字的机会。我相信公式是这样的:(1/3)^3我在 java 中做了以下操作来模拟这个多次尝试:

        win = (int) (Math.random() * 3);

if (win != 1) {
n=0;
}
if (win == 1) {
n++;
}
if (n == 3) {
n=0;
l++;
}

y++;

所以 l 将是相同结果连续出现 3 次的次数。 y 将是“卷”的总数。然而,经过多次尝试,我得到的结果并不倾向于 (1/3)^3。这是因为我只计算 1 连续出现,而不是 1 OR 2 OR 3 连续出现 3 次吗?或者说这里有什么错误。谢谢

最佳答案

代码非常不清楚它在做什么。我建议这样重组

Random rand = new Random();
int attempts = 10000;
int allSame = 0;
for (int i = 0; i < attempts; i++) {
int a = rand.nextInt(3);
int b = rand.nextInt(3);
int c = rand.nextInt(3);
if (a == b && b == c)
allSame++;
}
System.out.println("The ratio was " + (double) allSame / attempts);

使用 Java 8

IntSupplier dice = () -> rand.nextInt(3);
int allSame = IntStream.range(0, attempts)
.map(i -> dice.get())
.filter(d -> d == dice.get() && d == dice.get())
.count();

关于java - 有机会获得3连胜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139530/

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