【发布时间】:2019-07-26 05:29:12
【问题描述】:
我正在寻找一种更快的方法,它允许我从存储在数组中的某个数字池中获取一个随机数。
我需要多次使用该方法,而当前方法严重拖慢了代码速度。
#include <cstdlib>
#include <ctime>
int main()
{
const int size = 8;
int numberArray[size] = { 0, 0, 3, 4, 0, 6, 7, 0 };
srand(time(0));
int rndIndex;
int rndNumber;
do
{
rndIndex = rand() % size;
rndNumber = numberArray[rndIndex];
} while (rndNumber <= 0);
}
我喜欢从数组中得到一个随机数,除了随机数小于0
【问题讨论】:
-
为什么数组中有那些 0?
-
随机性会受到零的影响。
-
创建非零列表怎么样?
-
我正在编写骑士之旅(en.wikipedia.org/wiki/Knight%27s_tour),这个数组代表骑士可能的移动,0代表一个移动,这是不可能的,因为边缘,或者领域已经通过了
-
如果代码在你得到零时什么都不做,我要做的第一件事就是创建一个没有零的较小数组,然后简单地使用 rnd
Index = rand() % size_without_zero