大数定理的验证
2017-08-08 15:59
113 查看
法一:
void NUM::times() { //赋值 NUM num[200]; int total_num[5000]; int count = 0; for (int i = 0; i < 200; i++) { for (int j = 0; j < 25; j++) { total_num[count] = num[i].data[j]; count++; } } //去重 int final_num[5000][2]; count = 0; for (int i = 0; i < 5000; i++) final_num[i][1] = 0; for (int i = 0; i < 5000; i++) { if (total_num[i] != -1) { for (int j = i + 1; j < 5000; j++) { if (total_num[i] == total_num[j]) { total_num[j] = -1; final_num[count][0] = total_num[i]; final_num[count][1] += 1; } } count++; } } //和data数组关联 int data_often[25]; int m = count; count = 0; for (int i = 0; i < 25; i++) { for (int j = 0; j < m; j++) { if (data[i] == final_num[j][0]) { data_often[count] = final_num[j][1]; count++; } } } //计算概率与数学期望 double EX = 0; double pp = 0; for (int i = 0; i < count; i++) { //数学期望 EX += (double)((data[i] * data_often[i]) / 5000 ); pp += data[i]; } pp /= count; //概率 cout << double((pp / EX)) << endl; }
法二:
#include<iostream> #include<time.h> #include<stdlib.h> using namespace std; class NUM { private: int data[25]; public: NUM() { int count=0; while(count!=25) { int flag=1; int num=10000*rand()/(RAND_MAX+1.0); for(int i=0;i<count;i++) { if(data[i]==num) flag=0; } if(flag) { data[count]=num; count++; } } } void process() { for(int i=0;i<25;i++) { for(int j=i+1;j<25;j++) { if(data[i]>data[j]) { int temp; temp=data[i]; data[i]=data[j]; data[j]=temp; } } } } void times() { const int kk=500; NUM result[kk]; int dataP[25]; int count=0; for(int p=0;p<25;p++) { for(int i=0;i<kk;i++) { int flag=0; for(int j=0;j<25;j++) { for(int k=0;k<25;k++) { if(result[i].data[j]==this->data[k]) flag=1; } } if(flag) { count++; } } dataP[p]=count; count=0; } double EX=0,num=0; for(int i=0;i<25;i++) { EX+=(double(dataP[i])/5000.0)*data[i]; num+=dataP[i]; } cout<<EX/num<<endl; for(int i=0;i<25;i++) { cout<<dataP[i]<<'\t'; if((i+1)%5==0) cout<<endl; } } void print() { for(int i=0;i<25;i++) { cout<<data[i]<<'\t'; if((i+1)%5==0) cout<<endl; } } }; int main() { NUM test; test.process(); test.times(); test.print(); return 0; }
相关文章推荐
- Java验证辛钦大数定理
- 用R语言来验证大数定理
- Laravel 验证
- 微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】
- parsley之表单验证初探
- vue之登录路由验证
- 邮箱有效性验证
- 验证身证是否合法,并且取得里面的生日日期
- 有关银行验证的代码共享
- SilverLight.3-Validation:一、银光验证。ValidatesOnExpression和NotifyOnValidationError
- Chapter 2 User Authentication, Authorization, and Security(1):选择Windows和SQL 身份验证
- Android 设置代理(验证用户名和密码)
- [导入]ValidationExpression 验证规则
- 学习笔记之 WCF安全(6) 数字证书 自定义证书验证+ 客户端 证书验证(wshttpBinding)
- 使用puTTY和Xshell连接Linux和使用密钥验证
- 身份证号码验证正确性
- 验证java中char数据类型在内存中的二进制形式为Unicode编码
- QT开发(六十六)——登录对话框的验证机制
- ASP.NET MVC中使用FluentValidation验证实体
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证