【发布时间】:2018-01-25 13:52:42
【问题描述】:
我正在尝试为我的程序自动化测试用例,我想生成随机的数字字符串来测试...第一个测试将使用基数 2 的数字,所以我想生成随机的 0 和 1长度 n,其中 n 是从 1 到 100。这是我到目前为止所拥有的,它一直返回相同的字符串(相同的长度)并且只为字符串的整个长度生成 1 或 0。
int digNum = rand() % 100 + 1;
int num;
for(int i = 0; i < digNum; i++) {
num = ((double) rand() / (RAND_MAX)) + 1;
s1 = s1 + to_string(num);
}
cout << s1 << endl;
想法?
【问题讨论】:
-
你有没有初始化
srand,即调用类似srand (time(NULL))的东西? -
想一想
(double) rand() / (RAND_MAX)做了什么。然后想想当你将它转换为整数时会发生什么。 -
你应该看看random标准库(从c++11开始可用)——它比
rand()更通用。