gpt4 book ai didi

C# 方法在应该返回唯一值时不返回唯一值

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:27 24 4
gpt4 key购买 nike

我有两个方法,generateNounPhrase() 和 generateVerbPhrase()。 VerbPhrase 将在一半时间调用 NounPhrase,它的输出结果应该是:

the empty lot re-animates this pyramid

(粗体表示 generateNounPhrase() 的逻辑调用位置)。然而,真正的输出是以下形式:

the empty lot re-animates the empty lot

起初我以为我的 randomIndex 方法没有按预期工作,但如果我再次运行这两种方法,我确实会得到不同的名词短语,但它们在句子的开头和结尾并不是唯一的,因为它们应该是唯一的.

知道我为了获得一种方法来显示相同​​结果而做错了什么吗?

private string generateNounPhrase()
{
string nounPhraseString = "";
nounPhraseString = nounMarkersStringList[randomIndex(0,nounMarkersStringList.Count-1)];
if (included(1, 4, 2) == true)
{
nounPhraseString += " " + adjectivesStringList[randomIndex(0, adjectivesStringList.Count - 1)];
}
nounPhraseString += " " + nounsStringList[randomIndex(0, nounsStringList.Count - 1)];
return nounPhraseString;
}

private string generateVerbPhrase()
{
string verbPhraseString = "";
if (included(1, 4, 2) == true)
{
verbPhraseString = intransitiveVerbsStringList[randomIndex(0, intransitiveVerbsStringList.Count - 1)];
}
else
{
verbPhraseString = transitiveVerbsStringList[randomIndex(0, transitiveVerbsStringList.Count - 1)] + " " + generateNounPhrase();
}
return verbPhraseString;
}

最佳答案

在没有看到 randomIndex 的代码的情况下,我无法确定,但看起来您每次调用 randomIndex 时可能都在创建 Random 类的新实例。如果你在很短的时间内这样做两次,就像你在这里,它会为随机数生成器播种两次相同的值(因为它是用当前时间播种的)并且你会得到相同的“随机”数两次都返回。

相反,您应该对所有 randomIndex 调用使用单个 Random 实例。

关于C# 方法在应该返回唯一值时不返回唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214343/

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