我如何从我拥有的特定数字列表中生成随机数?

我希望我的应用程序使用我选择的特定数字列表来填充随机数字集。 例如,我有一组数字(1,3,5,9,21,70,56)。 我希望能够随机选择这些数字的顺序。 这可能吗?

解决方案:

如果你想生成一个1000个数字的列表,只使用那些你给的。

Dim r as New Random()
Dim thousand as New List(Of Integer)(1000)

'short way to create an array
Dim onlyFrom = {1,3,5,9,21,70,56}

For i = 1 to 1000 
  thousand.Add(onlyFrom(r.Next(0, onlyFrom.Length)))
Next i

它反复向Random询问0和数组长度之间的随机整数。Next()可能会返回较低的数字,但绝不会返回较高的数字。文档介绍

如果你想把你给的那些数字洗成一个随机的顺序,可以用LINQ的简单方法。

Dim r as New Random()
Dim onlyFrom = {1,3,5,9,21,70,56}

Dim shuffled = onlyFrom.OrderBy(Function(x) r.Next()).ToArray()

注意: 不要在循环中使用New Random()

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/10167.html

(0)
上一篇 2022年6月15日 上午6:33
下一篇 2022年6月15日 上午7:12

相关推荐

发表评论

登录后才能评论