求思路及做法 怎样用c++验证圆弦长范围的概率
写程序的时候就要预先假定随机性(均匀分布)是针对哪个量的,所以验证没有意义
■网友
“完全随机”这个说法是不严谨的。如果理解成『圆上两点与圆心连线的夹角满足均匀分布』的话,我想答案是2/3。写程序验证并没有什么卵用,因为到头来你还得证明你的程序是对的,还不如直接算。==========关于“随机”,一般人总是理解成一个均匀分布或者等概率多项分布,比如抛一个硬币等概率得到正反两面这样。事实上,假如有一个奇怪的硬币,得到正面的概率是0.8,那抛这个硬币的结果也能说是“完全随机”的。所以,一旦问题稍微复杂一点,例如本题,随便说“完全随机”就很不负责任:一没确定随机变量,二没说满足什么分布。以上。
■网友#include \u0026lt;iostream\u0026gt;#include \u0026lt;cmath\u0026gt;#include \u0026lt;random\u0026gt;#include \u0026lt;ctime\u0026gt;using namespace std;//需要C++11const int EXP_COUNT = 1000000; //测试次数int main(){ const double sqrt3 = sqrt(3); uniform_real_distribution\u0026lt;double\u0026gt; degGen(0.0, 2*acos(-1.0)); default_random_engine re; re.seed(clock()); int successfulCnt=0; for (int i=0; i\u0026lt;EXP_COUNT; ++i) { double degree1 = degGen(re), degree2 = degGen(re); if (std::hypot(cos(degree1)-cos(degree2), sin(degree1)-sin(degree2)) \u0026lt; sqrt3) ++successfulCnt; } cout \u0026lt;\u0026lt; static_cast\u0026lt;double\u0026gt;(successfulCnt) / EXP_COUNT \u0026lt;\u0026lt; endl; // example: 0.666645 }
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- |环城街道开启“一二三四”新思路,打造纪检工作新亮点
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
