加载中...

10.9 检查其他值


函数“howMany”只是统计了某个特殊的数值的出现次数,有时候我们需要统计每个数值出现的次数。可以用下面这个循环函数完成这项工作。

  1. int numValues = 20;
  2. int upperBound = 10;
  3. apvector<int> vector = randomVector (numValues, upperBound);
  4. cout << "value\thowMany";
  5. for (int i = 0; i<upperBound; i++) {
  6. cout << i << \t << howMany (vector, i) << endl;
  7. }

注意这一点,在for语句中是可以定义变量的。这种语法设计有时候是很方便的,但是在循环语句中定义的变量只能在循环体中使用,这点要记住。比如,跳出循环后,变量i就不能再使用了。如果你尝试在循环体外面引用i,你将会得到一个编译错误。

这段代码使用了一个循环变量作为howMany函数的参数,以此按顺序统计每个数值的出现次数。程序运行的结果为:

  1. Value howMany
  2. 0 2
  3. 1 1
  4. 2 3
  5. 3 3
  6. 4 0
  7. 5 2
  8. 6 5
  9. 7 2
  10. 8 0
  11. 9 2

现在看来,我们还是不能说明随机数产生的几率是一样的。如果我们把数值出现的上限调到100000,将得到如下结果:

  1. Value howMany
  2. 0 10130
  3. 1 10072
  4. 2 9990
  5. 3 9842
  6. 4 10174
  7. 5 9930
  8. 6 10059
  9. 7 9954

对于每个数说,它们出现的次数误差在估计值的1%以内,由此我们可以认为随机数是均匀分布的。


还没有评论.