首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何避免使用rand和srand得到重复的数字?

要避免使用rand和srand得到重复的数字,可以采用以下方法:

  1. 使用更高级的随机数生成器:rand函数是C/C++标准库中提供的伪随机数生成器,其生成的随机数序列是有限的且可预测的。为了避免重复的数字,可以使用更高级的随机数生成器,如C++11引入的random库中的随机数引擎和分布函数,或者使用第三方的随机数库,如Boost.Random库。
  2. 设置随机数种子:srand函数用于设置随机数生成器的种子,如果每次使用相同的种子调用srand函数,那么每次生成的随机数序列都是相同的。为了避免重复的数字,可以使用不同的种子来初始化随机数生成器,可以使用时间戳作为种子,确保每次生成的随机数序列都是不同的。
  3. 使用集合或哈希表:如果需要生成一系列不重复的随机数,可以使用集合或哈希表来存储已生成的随机数,每次生成新的随机数时,先检查是否已存在于集合或哈希表中,如果存在则重新生成,直到生成一个不重复的随机数。
  4. 使用洗牌算法:洗牌算法是一种将元素随机打乱顺序的算法,可以用于生成不重复的随机数序列。可以将需要生成随机数的范围作为元素,使用洗牌算法打乱顺序,然后按顺序取出元素作为随机数。

总结起来,避免使用rand和srand得到重复的数字的方法包括使用更高级的随机数生成器、设置不同的随机数种子、使用集合或哈希表存储已生成的随机数、使用洗牌算法生成不重复的随机数序列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券