问题描述

一个桶里面有白球. 黑球各 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. java封装对象实体类_Java 接口自动化系列--实体类之entity封装
  2. 说经年——感悟我接触的求职简历
  3. Xamarin.Forms单元控件Cell
  4. Tkinter的OptionMenu组件
  5. Readhat中挂载yum源
  6. 按比例切分组合数值(洛谷P1008、P1618题解,Java语言描述)
  7. Junit4所需jar包
  8. 二代征信在小额线上贷款风控领域应用探索
  9. 0909 对编译原理的想法
  10. MySQL update慢问题解决
  11. 基于深度学习的视觉 SLAM 综述
  12. 【老骥伏枥-原创】制作黑威联通启动盘:进阶篇
  13. 免费文章原创度检测工具
  14. 极域电子教室2016破解版
  15. 魔兽地图编辑器插件YDWE的使用与基本设置4 物体编辑器、启动游戏测试、查找物品
  16. 员工格言[付总提供]
  17. 假如shiro启动报The bean ‘sysUserServiceImpl‘ could not be injected as a ‘com.zyr.springbootdemo.sys.user.
  18. Nature子刊 | 你知我意:精神病人的威胁性评估的fMRI标志物
  19. 获取滚动条滚动距离兼容写法
  20. 人工智能热潮_团结与增强现实热潮

热门文章

  1. 霍夫曼树、霍夫曼编码
  2. Android studio 40 播放网络歌曲
  3. Android防止按钮在规定时间内被连续点击的简单方法
  4. iOS 屏幕尺寸、分辨率、适配、UI规范
  5. 用NI的数据采集卡实现简单电子测试之6——数字I/O及测试平台
  6. 如何方便快捷给电脑重装纯净系统
  7. 读取手机序列号IMEI,SIM序列号IMSI方法
  8. linux wol 关机,Linux Wake-On-Lan(wol)
  9. 安防算法及整体解决方案公司
  10. 计算机一级考试题库操作题手机版,全国计算机一级操作考试题库示范