codecamp

C++ 检查其他值

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

C++ 计数
C++ 直方图
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }