我發現rand函數只能提供數字給我,但我想讓他在列表裏面取隨機的值,應該怎麼做
使用 std::random_shuffle() 函数将列表中的元素随机打乱,最后从列表中取出前几个元素
rand函數不是已经产生随机数了,把这个作为数组的下标去取值不就是随机的。
之所以使用srand函数是为了设置时间种子。那么什么是时间种子呢?时间种子本身只是一个数字,rand函数产生的随机值就是由这个数字带入一个特殊函数得来的。而这个数字是计算机启动之后就确定的了。因为特殊函数是确定的现在数字又是确定的,就会导致rand函数产生的随机值并不是真正意义上的随机,一般称作伪随机。那么srand的作用也就非常明显了,srand接收一个数字并且把这个数字设置为随机种子。那么这个参数设置为多少才能达到真正的随机呢?答案就是时间。
程序运行的开始时间是由程序员控制的,解决了伪随机的问题。