囚犯生存概率引发的循环思考
有一个囚犯,国王打算处决他,但仁慈的国王给了他一个生还的机会。现在摆在他面前有两个瓶子,一个里面装了50个白球,一个装了50个黑球,这个囚犯有一个机会可以随便怎样重新分配这些球到两个瓶子中(当然,要保证不空),分配完了之后囚犯被蒙上眼睛,国王随机取一个瓶子给他,他在里面摸出一个球(因为蒙着眼睛,所以也是随机抽取),如果白球,则活,否则挂掉。问,这个囚犯如何分配,才能最大化生还几率。
答案当然谁都能猜到,就是只把一个白球放过去。我编了个循环试了试。遇到问题如下:
我假定一个瓶子中球总数为:zongshu,白球数为baiqiu,囚犯活下来的概率为rate。循环如下:
for( zongshu=1; zongshu<100; zongshu++){
for(baiqiu=0;(baiqiu<=zongshu)&&(baiqiu<=50); baiqiu++){
temprate=(double)baiqiu*0.5/(double)zongshu+(double)(50-baiqiu)*0.5/(double)(100-zongshu);
if(temprate>rate) {
rate=temprate;
b= baiqiu;
z= zongshu;
}
else continue;
}
continue;
}
这个循环是错误的,程序结果有问题,居然能把rate算到大于1。百思不得其解。而后我改了一下试试。定义了基于heiqiu和baiqiu的循环如下:
for(heiqiu=0;heiqiu<=50;heiqiu++){
for(baiqiu=1;baiqiu<=50;baiqiu++){
int zongshu=heiqiu+baiqiu;
temprate=(double)baiqiu*0.5/(double)zongshu+(double)(50-baiqiu)*0.5/(double)(100-zongshu);
if(temprate>rate) {
rate=temprate;
b= baiqiu;
z= heiqiu+baiqiu;
}
else continue;
}
continue;
}
结果正确。大家知道这是为什么么?
想到问题所在了吧?但是如果重写循环你是很难发现这个错误的,所以在定义循环时你一定要注意循环是否考虑完全。避免犯这样的错误。
一程序中的错误为:限制白球小于50,没有限制黑球(zongshu-baiqiu)小于50
转载于:https://www.cnblogs.com/hold/archive/2010/04/27/2286807.html
囚犯生存概率引发的循环思考相关推荐
- 一个关于概率的问题的思考
最近需要给公司内部编写一个随机生成人员名单的小工具,在解决这个问题的过程中,我认识到这是一个概率相关的问题,即使在过去我曾经设计过类似转盘抽奖这样的应用程序,可我并不认为我真正搞清楚了这个问题,所 ...
- GitChat 被恶意攻击引发的技术性思考:拒绝服务攻击
本文来自作者 肖志华 在 GitChat 上分享 「GitChat 被恶意攻击引发的技术性思考:拒绝服务攻击」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 拒绝服务的类型很多,挑几个有特 ...
- sklearn 相关性分析_用sklearn机器学习预测泰坦尼克号生存概率
前言 本文为练手记录,适用于刚入门的朋友参照阅读练习,大神请绕道,谢谢! 阅读大约需要10分钟. 一.理解项目概况并提出问题 1.1 登陆官网查看项目概况 Titanic: Machine Learn ...
- Bob 的生存概率问题
Bob 的生存概率问题 作者:Grey 原文地址: 博客园:Bob 的生存概率问题 CSDN:Bob 的生存概率问题 题目描述 给定五个参数 n , m , i , j , k,表示在一个 n*m 的 ...
- tensorflow2.0——预测泰坦尼克号旅客生存概率(Keras应用实践)
一.数据准备 1.导入相关的库 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import pa ...
- 使用统计学分析《鱿鱼游戏》中“玻璃垫脚石”的生存概率
如果你要在鱿鱼游戏中玩玻璃垫脚石,你的会选择那个数字? <鱿鱼游戏>是最近很火的电影,在阅读本篇文章之前,我假设你已经看过这部剧集了.比赛中需要使用不同的策略才能获胜,比如第7集中的&qu ...
- NSObject到底多么大引发的一些思考
NSObject到底多么大引发的一些思考 本文引用及参考文献,感谢一下博主的分享: C++ 内存对齐-by enos 小码哥iOS学习笔记第一天: Objective-C的本质-by 冰凌天 Obje ...
- 关于“找老婆”问题引发的深入思考
浅谈"数学家.理论计算机科学家.工程师的区别" 关于"找老婆"问题引发的深入思考 有一天,三个朋友一起去吃烧烤.他们分别是数学家,理论计算机科学家,计算机工程师 ...
- 一个线程池 bug 引发的 GC 思考!
问题描述 前几天在帮同事排查生产一个线上偶发的线程池错误,逻辑很简单,线程池执行了一个带结果的异步任务. 但是最近有偶发的报错: java.util.concurrent.RejectedExecut ...
最新文章
- ACM小白入门之必须要了解的东西
- 神经网络与机器学习 笔记—多层感知器(MLP)
- 使用nodejs代码在SAP C4C里创建Individual customer
- java 任意数平均值_【编程题】通过键盘输入三个任意的数字,计算三个值的平均值,并输出结果。...
- Android 开发环境在 Windows7 下的部署安装
- gradle引入子module配置_原创 | 看完此文,你对Gradle的理解又升级了
- 改良版class选择器
- linux下nginx404,linux+nginx下的404可能错误
- javascript 自动化单元测试
- 【炼丹技巧】惊了,掌握了这个炼丹技巧的我开始突飞猛进
- Django url() 函数详解
- C#技术分享【PDF转换成图片——10种方案】(2013-07-25重新整理)
- 汇编语言---80386寄存器,GCC内联汇编语法
- 3993: [SDOI2015]星际战争
- ipv4地址怎么设置 手机_手机ip地址怎么设置 手机WIFI静态IP设置方法
- 阿里云网盘内测申请_33期——阿里云网盘之内测申请(一)
- SpringBoot项目在使用Maven打包war中遇到的问题
- ubc本科计算机雅思要求,加拿大各大学的雅思要求
- 输入股票代码判断深市还是沪市,python
- rust门卡有什么用_屠龙之技! 使用Rust加速你的Python
热门文章
- 如何修改移动设备按钮默认样式
- Lesson 1:单线程 Socket Communications(一)
- 有关OCS监控软件安装在windows上, 服务端显示乱码的问题
- Struts2+Spring+Hibernate环境搭建
- linux运维决心书!
- linux 文件权限后面一个点的含义
- 大三时候实现的,关于大整数(超过long范围)加减乘除操作的头文件,并包含了实现RSA加解密的函数...
- html向后端发送请求
- nltk.download(“stopwords“)
- pycharm的updating indices