【发布时间】:2023-04-02 12:44:01
【问题描述】:
Randomise()
Dim questions(14) as string
Dim picked questions(4) as string
Dim rand as new random
Questions(0) = "?"
Questions(1) = "?"
...
Questions(14) = "?"
For counter = 0 to 4
Pickedquestions(counter) = questions(rand.next(0,15))
Next
我有一组问题,我想从这组问题中挑选 5 个问题。然而,我的方法意味着一些挑选的问题与我想避免的相同。有人建议我使用排序算法对数组进行随机排序,然后选择前 5 个。问题是我是初学者,我不明白如何将其合并到我的代码中。任何帮助或其他建议将不胜感激,谢谢。
【问题讨论】:
-
实际上你想打乱数组并使用其中的前 N 个。 Google for Shuffle 和/或 Fisher-Yates,this answer 使用该方法
-
您也可以将问题复制到一个临时列表(字符串)并从中随机选择它们;随时将它们从临时列表中删除。此外,这里的 Randomize() 对您没有任何作用,因为它与旧的 Rnd() 函数一起使用。您正在使用以当前时间为种子的新 Random() 类;将其从
Dim更改为Static。
标签: vb.net