gpt4 book ai didi

java - 以下算法将显示多少颗星?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:15 26 4
gpt4 key购买 nike

给定以下代码,以下算法将显示多少颗星(平均)?通过跟踪前几次迭代,我确定它是 99,但其他人告诉我它应该是 100。为什么它应该是 100,而不是 99?当 nNum 等于 1 到 9 范围内的数字时,我们确实为每个生成的相应随机数打印了大约 10 颗星(从 1 到 9 的随机数中有 9 颗星,而生成的 0 中有 1 颗星作为导致 nNum-- 的前一个 nNum 的随机数)。但是当 nNum = 10 时,我们没有从“前一个”nNum 中产生随机数 0 的那一颗额外的星。(我希望我在这里说的是有道理的......!)

public static void main(String[] args)
{
int nNum = 10;
printStar(nNum);
}

public static void printStar(int nNum)
{
if(randNumGen.nextInt(10)<1)
nNum--;
if(nNum>0)
{
System.out.print('*');
printStar(nNum);
}
}

最佳答案

您正在根据随机数减少变量值

if(randNumGen.nextInt(10)<1)
nNum--;

基于此,您将打印至少 9 颗星(假设随机生成的总是 0)。而且,另一方面,您可能拥有无限颗星星(尽管从概率上讲,由于 PRNG 种子,这不会发生)

关于java - 以下算法将显示多少颗星?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329720/

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