[算法笔记]选二取一
来源:互联网 发布:mac隐藏下方菜单栏 编辑:程序博客网 时间:2024/06/14 17:11
昨天晚上看番的时候看到一个有趣的情景:某个学校的入学考试只选取参考人数的一半的同学,全部同学被随机分队,每队两个人互相切磋,只有胜者才能胜利进入学校。
学校的目的应该是选出前百分之50的人
于是我就想,这应该是一种极其低效的方法,这样筛选出来的同学不仅包含了差生(后百分之50),还把优生给刷走了…
但问题来了,这种筛选的方法虽然高效,但具体的误差是多少呢
当即就写了个控制台看看,发现总共测了1000组5万人的数据,平均值在0.372531 (就是选出来的优生(前百分之50)占总人数的比例)
用数学方法怎么证明现在还在想。。
#include<iostream>#include<stdlib.h>#include<Windows.h>using namespace std;const int Number = 50000; int MaxPower;float ANS[1000];double average(int n){ if (!n) { return 0; } else { return ANS[n - 1] / 1000 + average(n - 1); }}int main(){ int Students[Number]; int k = 0; for (MaxPower = 20; MaxPower < 1020; MaxPower++) { int ans = 0; for (int i = 0; i < Number; i++) { Students[i] = rand() % MaxPower; if (i % 2 == 1) { if (max(Students[i - 1], Students[i]) > (float)MaxPower/2) ans++; } } ANS[k++] = (float)ans / Number; // cout << ANS[k - 1] << endl; } cout << average(1000); system("pause"); return 0;}
阅读全文
0 0
- [算法笔记]选二取一
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 算法笔记
- 《算法》笔记
- 运行helloworld.java出错记录
- 揭秘—高级产品经理的日常工作
- 为什么要写这个系列文章【程序员成长之道系列文章之1】
- 子弹工厂
- Unity5权威讲解之菜鸟读书笔记(一)
- [算法笔记]选二取一
- 【Lintcode】加一
- ImageLoader
- JDK中rt.jar、tools.jar和dt.jar作用
- Android RxJava操作符详解系列: 变换操作符
- 为opencv添加附加依赖库
- 【P1059】明明的随机数(sort+unique)
- linux mysql5.7报err 1055错误 sql_mode=only_full_group_by
- 芯片选择LL库还是HAL库