如何在循环中随机化不同的值?c ++
How to randomize different values in a loop? c++
我想分配不同的随机值(索引(来填充向量。 每次运行程序时,它都会产生不同的随机值。但是,对于相同的运行,它在循环的每次迭代中生成相同的随机值。
这是我的代码:
void hire (vector<PersonType> &salaryMan, vector<CompanyType> &company){
double payment;
string role;
int i;
int j;
for (int x =0; x <5; x++){
i =randomizeEmp(salaryMan);
payment =salaryMan[i].getSalary();
role =salaryMan[i].getTitle();
j =randomizeEmp(salaryMan);
salaryMan[j].setTitle(role);
salaryMan[j].setSalary(payment);
company[x].employee.push_back(salaryMan[j]);
}
}
int randomizeEmp(vector<PersonType> &v){
double i;
int minNumOfEmp =0;
unsigned seed =time(NULL);
srand(seed);
i =minNumOfEmp +rand()% ((v.size()-1) - minNumOfEmp);
cout <<i<<endl;
return i;
}
我的输出如下: 佛罗里达迈阿密 100 公司 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000
利内特·勒弗斯 529 合伙人G 600000
公司B 纽约 纽约 101 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000
利内特·勒弗斯 529 合伙人G 600000
公司C加州圣何塞 102 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000
利内特·勒弗斯 529 合伙人G 600000
德克萨斯州达拉斯 103 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000
利内特·勒弗斯 529 合伙人G 600000
E公司 佛罗里达塔拉哈斯 104 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000 利内特·勒弗斯 529 合伙人G 600000
unsigned seed = time(NULL);
srand(seed);
这是您通常希望在程序启动时执行一次的操作。
每次你在同一秒内执行此操作(在计算机世界(a(中,很多事情都在一秒内发生(,它将在同一点重新启动序列。
(a(可能需要不到一秒的一件事是,在你的hire()
函数中,五次迭代,不涉及太多工作,for
循环。因此,可能它的每次迭代都会使用相同的种子。
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- Gecode 与 Z3 用于约束随机化
- 如何使用兰德随机化模拟点击
- C++,每个循环初始化一个新的静态变量
- 如何在循环中随机化不同的值?c ++
- 如何随机化双精度/浮点数据类型? C++
- 将 for 循环与嵌套的 while 循环并行化时出现 OpenMP 分段错误
- 如何随机化程序的窗口标题?
- 随机化超大文件内容排序的有效方法是什么?
- 随机化问题
- 随机化种子值C
- 查询有关循环初始化,条件和增量的查询
- 随机化字符数组以显示随机密码
- 如何随机化开关
- 编译时随机化结构成员的顺序
- 在C++中随机化地图
- 在循环初始化中使用带有静态的 constexpr
- C++随机化和循环困难
- 随机化不会在 while 循环中发生。如何解决这个问题?C++