在Rust中生成随机数

2j4z5cfb  于 2023-05-17  发布在  其他
关注(0)|答案(2)|浏览(248)

在Rust中生成随机数的最惯用的方法是什么,同时确保我们不会生成相同的数字两次?

46scxncf

46scxncf1#

要在Rust中生成一个随机数,你需要添加一个crate,rand是目前最流行的一个。
如果你想确保你永远不会生成相同的数字两次,你需要跟踪你已经生成的数字。有很多方法可以做到这一点,这取决于你的情况。您可以将数字存储在HashSet中,也可以将它们存储在数据库中。我们需要更多的细节以便给予更具体的建议。

o8x7eapl

o8x7eapl2#

鉴于评论中的额外细节,您有几个选择。

  • 正常生成随机数,然后检查数据库以查看是否已在使用。如果是,则生成更多,直到一个不是。
  • 使用一对一Map并跟踪单个值as described in this question。每次递增单个值。如果可以利用ID,则这可能具有安全性影响。
  • 生成非常大的随机数(128位或更多位)。如果使用足够多的位,就可以使冲突在统计上不切实际。位数取决于您的应用程序将生成多少ID。这就是UUID所做的。

相关问题