- 论坛徽章:
- 0
|
本帖最后由 luojiafeng1984 于 2016-05-09 21:09 编辑
大家好,我最近在看台大机器学习基石课程,其中有个Hoeffding不等式的公式,我想用C++代码计算一下,发现不对劲。请大家指教。
![]()
我对应写的C++代码是:- // Test.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <math.h>
- #include "stdlib.h"
- #include <iostream>
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- double errorRate = 0.1;
- for (int i = 1; i < 10; i++)
- {
- int n = 1000 * i;
- double fProbably = 2 * exp( -2 * (errorRate * errorRate) * n);
- cout << "probably rate is:" << fProbably << " when n = " << n << endl;
- }
- system("pause");
- return 0;
- }
复制代码 按照课程,n越大,得到的这种概率越小,但我的代码运行起来,结果是:
probability is:4.12231e-009 when n = 1000
probability is:8.49671e-018 when n = 2000
probability is:1.7513e-026 when n = 3000
probability is:3.6097e-035 when n = 4000
probability is:7.44015e-044 when n = 5000
probability is:1.53353e-052 when n = 6000
probability is:3.16084e-061 when n = 7000
probability is:6.51498e-070 when n = 8000
probability is:1.34284e-078 when n = 9000
请按任意键继续. . .
我想的是通过代码计算 2 exp(-2 E2 N)这个值。
类似于e的符号是可接受的错误率,比如说可接受误差10%,那那个值就是 0.1
|
|