利用C++中的bitset来检查生成的随机数是否重复。这样可以将内存空间的消耗降低,并且在每次检查是否重复时不用搜索整个序列。
#include <iostream> #include <ctime> #include <bitset> using namespace std; #define MAX 101 int main(void) { bitset <MAX> flag; srand((unsigned)time(NULL)); for (int i = 0; i < MAX; ++i) { int val = rand() % MAX; if(!flag[val]) //not exist { printf("%3d ", val); flag.set(val); } else i--; } printf("\n"); return 0; }
时间: 2024-12-25 19:42:27