问题描述

一个桶里面有白球. 黑球各 100 个,现在按下述的规则取球:
i . 每次从桶里面拿出来两个球;
ii. 如果取出的是两个同色的球,就再放入一个黑球;
iii. 如果取出的是两个异色的球,就再放入一个白球;
问:最后桶里面只剩下一个黑球的概率是多少?

答案

1.每次操作都会减少一球,所以最后剩下黑球或者白球
2.由于白球每次操作要么不变,要么成对减少,所以最后不可能剩余一个白球,那么必然是剩余黑球了

代码

public class Test {/*** 运算逻辑:*  1.将前100个数指定为白球,后100个指定为黑球,放入set里,然后再统一放入all set里*  2.随机取两个,执行取球放球的逻辑*  3.将剩余的黑白球重新排序,再循环继续之前的取球操作*  4.黑球或者白球有一个取尽的时候结束运行* @param args*/public static void main(String[] args) {//白球 0~99Set<Integer> white = new HashSet<>();for(int i=0;i<100;i++){white.add(i);}//黑球 100~199Set<Integer> black = new HashSet<>();for(int j=100;j<200;j++){black.add(j);}//所有的球 0~199Set<Integer> all = new HashSet<>();all.addAll(white);all.addAll(black);Random random = new Random();//新增的黑球(大于199就行,防止set插入值重复)int blackCount = 200;//遍历次数int count = 1;//黑白球比较数int compareNum = 100;while (true){int first = random.nextInt(all.size());int second = random.nextInt(all.size());if(first == second) continue;//都是白球if(first<compareNum && second<compareNum){white.remove(first);white.remove(second);all.remove(first);all.remove(second);black.add(blackCount);all.add(blackCount);}//都是黑球if(first>=compareNum && second>=compareNum){all.remove(second);black.remove(second);}//一白一黑if((first<compareNum && second>=compareNum)){all.remove(second);black.remove(second);}//一黑一白if((first>=compareNum && second<compareNum)){all.remove(first);black.remove(first);}//黑球或者白球取尽时跳出循环if(black.size()==0 || white.size()==0){break;}//set重排Set<Integer> newWhite = new HashSet<>();for(int ii=0;ii<white.size();ii++){newWhite.add(ii);}white = newWhite;Set<Integer> newBlack = new HashSet<>();for(int jj=0;jj<black.size();jj++){newBlack.add(white.size() + jj);}black = newBlack;compareNum = white.size();all.clear();all.addAll(white);all.addAll(black);System.out.println("第"+count+"次,白球剩余"+white.size()+"个,黑球剩余"+black.size()+"个。");count++;}System.out.println("第"+count+"次,白球剩余"+white.size()+"个,黑球剩余"+black.size()+"个。");}
}

JAVA 一个桶里面有白球. 黑球各 100 个相关推荐

  1. 有红、白、黑三种球若干个,其中红、白球共25个,白、黑球共31个,红、黑球共28个,使用for循环完成计算这三种球的个数

    有红.白.黑三种球若干个,其中红.白球共25个,白.黑球共31个,红.黑球共28个,使用for循环完成计算这三种球的个数(PHP) <?php //有红.白.黑三种球若干个,其中红.白球共25个 ...

  2. 有红、白、黑三种球若干个,其中红、白球共25个,白、黑球共31个,红、黑球共28个,这三种球各有多少个?

    有红.白.黑三种球若干个,其中红.白球共25个,白.黑球共31个,红.黑球共28个,请编程求解:这三种球各有多少个? public class Test12031 { public static vo ...

  3. C语言:白球红球黑球

    从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出.在每组中,可以没有黑球,但必须要有红球和白球.请编程实现输出所有可能组合方式. #include<stdio.h> int ...

  4. 一个口袋中放有12个球,已知其中3个是红球,3个是白球,6个是黑球,现从中任选8个,问共有多少种可能的颜色搭配?请画流程图实现算法

    问题 一个口袋中放有12个球,已知其中3个是红球,3个是白球,6个是黑球,现从中任选8个,问共有多少种可能的颜色搭配?请画流程图实现算法 设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个. ...

  5. 100个黑球和100个白球问题

    100个黑球和100个白球问题 问题 思路 计算 结论推广 问题 有一个桶,里面有白球.黑球各100个,人们必须按照以下的规则把球取出来: 1.每次从桶里面拿出来两个球: 2.如果是两个同色的球,就再 ...

  6. js第2章基本语法 课后习题——求出1~100之间的素数、求红白黑球

    <JavaScript前端开发案例教程>黑马程序员编著,中国工信出版集团,人民邮电出版社-课后习题 目录 一.填空题 二.判断题 三.选择题 四.编程题 1.请编写程序求出1~100之间的 ...

  7. 每周算法题(从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案,有1、2、3、4数字,组成无重复的三位数两个乒乓球队进行比赛,各出三人。甲队为a,b,c)

    每周算法题 文章目录 每周算法题 一.从三个红球.五个白球.六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案. 二.有1.2.3.4数字,组成无重复的三位数 两个乒乓球队进行比赛,各出三 ...

  8. 有红、白、黑三种球若干个,求红白黑球的数量

    有红.白.黑三种球若干个,求红白黑球的数量 直接上代码 打印结果 (~~~~~~~~~~~~~~~~~~~~~~~~~~~~) 联系阿超 (可解疑解答,无偿) 阿超QQ:2425991616 阿超微信 ...

  9. C语言:三色球问题:12个中3红3白6黑,取8个求共有多少种可能

    问题: 在一个口袋里放有12个球,已知其中3个红球,3个白球,6个黑球,现从中任取8个,问共有多少种可能的颜色搭配? 分析: 根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个 ...

最新文章

  1. 实现点击空白关闭模态框
  2. innodb参数汇总
  3. 如何查看Kubernetes pod yaml文件的在线语法帮助
  4. SciSharpCube:容器中的SciSharp,.NET机器学习开箱即用
  5. linux运维、架构之路-jumpserver
  6. 利用WindowsAPI创建窗体(c++)
  7. Python 中星号的本质及其使用方式
  8. bzoj 1016: [JSOI2008]最小生成树计数
  9. 深度学习在推断阶段(inference)的硬件实现方法概述
  10. Xcode在 release 模式下断点调试
  11. PAT 乙级 1048 数字加密 (20 分)
  12. AWGN信道中BCH码BPSK调制的BER性能_Simulink实现
  13. 大白菜安装系统两种方式
  14. CSDN论坛如何能够获得积分呢?
  15. JZOJ 1266. 玉米田
  16. 关于如何区分Android手机是32位还是64位
  17. ubuntu下如何设置环境变量
  18. IDEA中如何设置键盘快捷键可用
  19. nvidia jetson nano 操作指南
  20. TRC丨TRC 艾美捷 1-(3,5-双(苄氧基)苯基)pent-1-en-3-one说明书

热门文章

  1. .9图片四个边的含义
  2. linux x11 错误,Ubuntu X11 编译错误问题。
  3. 如何高效地读论文-how to read paper efficiently
  4. html 传参阻止冒泡,angular阻止冒泡事件
  5. 华为Mate X2售价17999元起,Mate X2将首批省级鸿蒙系统
  6. linux线程踩栈,Linux线程栈内存总结
  7. 传统手工室内外三维建模
  8. HTML Flex布局教程
  9. Layui表单验证失效解决办法
  10. 21-玩转RGB七彩灯 | Mixly技巧系列