企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
第一步是生成大量的随机数并存储它们在一个向量中。“大量”我指的是20个。在开始应该使用一个可控范围的数值,这将有益于调试,之后在增加它的规模。 接下来的函数将会使用一个参数,用来表示向量的长度。它用于申请分配一个新的向量用作存储int型数据,并且用0至upperBound-1之间的随机数填充。 apvector randomVector (int n, int upperBound) { apvector vec (n); for (int i = 0; i,这意味着该函数返回一个整型数的向量。为了测试这个函数,这里有一个十分方便的函数用作输出向量中的内容。 ~~~ void printVector (const apvector<int>& vec) { for (int i = 0; i<vec.length(); i++) { cout << vec[i] << " "; } } ~~~ 注意,这是一个apvector的合法语句参考。实际上它是十分常见的,因为它不必复制向量。因为printVector不需要修改向量,我们声明为const参数。 接下来的代码是生成一个向量并输出: ~~~ int numValues = 20; int upperBound = 10; apvector<int> vector = randomVector (numValues, upperBound); printVector (vector); ~~~ 在我的机器上输出是: ~~~ 3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6 ~~~ 这看起来是十足的随机。你的输出结果可能不同。 如果这些数字真的是随机的,我们其他每一个数字出现都是同样的次数——每个两次。实际上,数字6出现了5次,4和8则未曾出现。 这是否意味着平均值不是很均匀?这很难说。只用几个数值,得到我们所期望结果的是十分渺茫的。随着数字的增多,输出将会更接近我们预期的。 为了测试这个理论,我们写一些程序用作统计每个数字出现的次数,当增加到numValues.之后再观察发生了什么。