// 生成随机字符串 string randString(int len, char from = 'a', char to = 'z'){ string s; for (int i = 0; i < len; i++) { s += rnd(from, to); } return s; }
5. 使用方法
5.1 基本用法
1 2 3 4 5 6 7 8
voidsolve(){ int n = rnd(1, 100); // 生成数组长度 cout << n << "\n"; for (int i = 0; i < n; i++) { cout << rnd(1, 1000) << " "; // 生成数组元素 } cout << "\n"; }
5.2 生成特殊数据
1 2 3 4 5 6 7 8 9
voidsolve(){ // 生成边界情况 int n = 100000; // 最大数据 cout << n << "\n"; for (int i = 0; i < n; i++) { cout << n << " "; // 全部为最大值 } cout << "\n"; }
6. 常用生成模式
随机数据
边界数据
特殊构造
退化情况
7. 使用示例
7.1 生成排序数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14
voidsolve(){ int n = rnd(1, 100000); vector<int> a(n); for (int i = 0; i < n; i++) { a[i] = rnd(1, 1000000); } sort(a.begin(), a.end()); // 生成有序数据 cout << n << "\n"; for (int x : a) { cout << x << " "; } cout << "\n"; }
7.2 生成树
1 2 3 4 5 6 7
voidsolve(){ int n = rnd(2, 100000); cout << n << "\n"; for (int i = 2; i <= n; i++) { cout << rnd(1, i-1) << " " << i << "\n"; } }