如果我想在一個列表中取隨機的幾個值我應該怎麼做

我發現rand函數只能提供數字給我,但我想讓他在列表裏面取隨機的值,應該怎麼做

使用 std::random_shuffle() 函数将列表中的元素随机打乱,最后从列表中取出前几个元素

rand函數不是已经产生随机数了,把这个作为数组的下标去取值不就是随机的。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7566236
  • 这篇博客也不错, 你可以看下为什么 rand 函数生成的是伪随机数?
  • 除此之外, 这篇博客: c语言随机数rand函数一探究竟中的 真正的随机数? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 之所以使用srand函数是为了设置时间种子。那么什么是时间种子呢?时间种子本身只是一个数字,rand函数产生的随机值就是由这个数字带入一个特殊函数得来的。而这个数字是计算机启动之后就确定的了。因为特殊函数是确定的现在数字又是确定的,就会导致rand函数产生的随机值并不是真正意义上的随机,一般称作伪随机。那么srand的作用也就非常明显了,srand接收一个数字并且把这个数字设置为随机种子。那么这个参数设置为多少才能达到真正的随机呢?答案就是时间。

    程序运行的开始时间是由程序员控制的,解决了伪随机的问题。