10.9 检查其他值

优质
小牛编辑
128浏览
2023-12-01

函数“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%以内,由此我们可以认为随机数是均匀分布的。