随机过程给定种子,得到的结果总是一样的

来源:互联网 发布:淘宝手机端显示宝贝 编辑:程序博客网 时间:2024/04/29 21:17

        如题。

        以下是一段产生不重复的随机数的代码:

#include <stdio.h>#include <stdlib.h>#include <vector>#include <algorithm>bool sortIntVector(int v1, int v2);int main(){    std::vector<int> v_randInt;    int seed = 9;    int temp;    int i = 0;         while(v_randInt.size() < 20)     {        srand(seed + i);        temp = rand()%100;                if(i%2 == 0)        {             i ++;             continue;         }         i++;                temp += i + 5;        temp = temp%100;                 while(find(v_randInt.begin(),v_randInt.end(),temp) < v_randInt.end())        {            temp = rand()%100;        }                v_randInt.push_back(temp);    }            sort( v_randInt.begin(),v_randInt.end(), sortIntVector);         for(std::vector<int>::iterator i = v_randInt.begin(); i < v_randInt.end() ; i++)        printf("%d\n",i[0]);        //system("pause");    return 0;}bool sortIntVector(int v1, int v2){     return v1 < v2;//升序排列     }

多次执行的结果是一致的:

3
6
12
14
20
23
29
31
37
40
46
55
63
72
78
80
86
89
95
97


原创粉丝点击