【发布时间】:2015-01-03 09:30:50
【问题描述】:
我想在 C++ 中洗牌一个数组,每次程序运行时,我都想进行不同的随机洗牌。我有myArray 的长度。目前我正在使用:
random_shuffle(myArray, myArray+N)
但这每次都会产生相同的改组。为了包含一个随机数,我尝试了:
random_shuffle(myArray, myArray+N, rand()%i)
但我收到错误cannot convert parameter 3 from 'int' to 'int&'。
我考虑使用基于this example 的shuffle 函数,但似乎我无法使用2011 年之前的编译器。
对不起,如果这是一个非常愚蠢的问题。我在 SO 上找不到这个特定问题的任何内容,谷歌只是告诉我创建洗牌算法的方法。
【问题讨论】:
-
没有愚蠢的问题,只有问题。有一段时间我什至不能走路。
-
This link 是非常好的参考。请看一下
-
rand()%i的类型不是函数也不是可调用对象,请仔细看看那个例子