函数“howMany”只是统计了某个特殊的数值的出现次数,有时候我们需要统计每个数值出现的次数。可以用下面这个循环函数完成这项工作。
int numValues = 20;
int upperBound = 10;
apvector<int> vector = randomVector (numValues, upperBound);
cout << "value\thowMany";
for (int i = 0; i<upperBound; i++) {
cout << i << ’\t’ << howMany (vector, i) << endl;
}
注意这一点,在for语句中是可以定义变量的。这种语法设计有时候是很方便的,但是在循环语句中定义的变量只能在循环体中使用,这点要记住。比如,跳出循环后,变量i就不能再使用了。如果你尝试在循环体外面引用i,你将会得到一个编译错误。
这段代码使用了一个循环变量作为howMany函数的参数,以此按顺序统计每个数值的出现次数。程序运行的结果为:
Value howMany
0 2
1 1
2 3
3 3
4 0
5 2
6 5
7 2
8 0
9 2
现在看来,我们还是不能说明随机数产生的几率是一样的。如果我们把数值出现的上限调到100000,将得到如下结果:
Value howMany
0 10130
1 10072
2 9990
3 9842
4 10174
5 9930
6 10059
7 9954
对于每个数说,它们出现的次数误差在估计值的1%以内,由此我们可以认为随机数是均匀分布的。