如何不重复随机数直到全部使用?

时间:2018-01-14 17:48:51

标签: c random

我有一个代码,我正在尝试添加支持,因此在所有代码都被使用之前不能重复这些代码。

每次使用random_type函数时,它都会生成一个随机数,我正在寻找的是数字在重新使用之前不会重复的方式。

代码:

void random_type(int type, int value) {
    int i;

    for (i = 0; i < 10; i++) {
        SelectT->type[i] += value;
    }
}

int main ()
{
    int randType = rand()%10;
    random_type(randType, 80);
]

示例:

10,5,1,3,2,6,9,4,8,7
2,9,1,4,10,7,5,8,3,6

1 个答案:

答案 0 :(得分:1)

  1. 将您要使用的所有数字放入数组中。

  2. 随机播放阵列 - 费雪耶茨洗牌很常见。

  3. 以洗牌顺序从数组中选择数字。

  4. 使用所有数字后,重新洗牌并返回3。