张宇/王式安 考研数学 概率论争议题 【Java验证版】

  • 一、原题题目
    • 1. 争议
    • 2. 结论
  • 二、代码实现

这个版本的代码有点乱,已更新Python代码,也许看起来好一些
链接 张宇/王式安 考研数学 概率论争议题 【Python版】

一、原题题目

本题为1987年实考题
设两箱内装有同种零件,第一箱装50件,其中有10 件一等品,
第二箱装30件,其中有18件一等品,先从两箱中任挑一箱,
再从此箱中前后不放回任取两个零件,求:(1)先取出的零件是一等品的概率p.(2)在先取出的是一等品的条件下,后取的仍是一等品的条件概率q.

1. 争议

     如果你看到这篇文章,估计已经知道争议,在此简单介绍即可。张宇和王式安第一问答案一样,无争议,为0.4。第二问,张宇认为,应该用条件概率公式,答案约为0.4855.但出题人王式安先生认为,应用全概率公式,答案为0.3849.

2. 结论

 本题思想简单,题目中也无明显歧义,简单重复验证即可。个人觉得,应该是王式安先生错了,错误的原因在于忽略了“第一次取的是一等品”这一事件已经发生。(应考虑贝叶斯,执果索因)但我去年跟的王式安,概率论部分考得还行,虽然理解的不够深入,但是我确实会做。能在培训界混口饭吃还是有点东西的,如果有跟王式安的朋友看到了不要慌,老王可以,跟着他走,考研问题不大。

二、代码实现

【闲话】
本来是打算用C++写的,奈何重装系统之后安装的DEV CPP不太顺手,调试的时候老是出问题。
我离开它一段时间,它就再也回不来了。
顺手拿Java撸了一个,由于撸的时候刚刚从C/C++转换过来,思维混乱,敬请谅解。(主要是因为我不太会Java,也没有对象。
这个Java代码能用,要充分感谢科技的进步,感谢技术标准的提升,感谢编译器的优化。
这个代码可能存在许多问题,如有发现还请指正。

import java.util.*;
public class Test01 {static final int INFERIOR=0;static final int GOOD=1;static boolean[]status=new boolean [50];static int AboxInfer=(50-10);static int BboxInfer=(30-18);static int firstCount=0;//第一次为正品的次数static int successCount=0,failtureCount=0;//第一次为正品&&第二次为正品 的次数 与 失败次数static int examCount=100000;//实验次数public static void reStatus() {for(int i=0;i<status.length;++i) {status[i]=false;}}public static void distribute(int []box,int countInferoir) {int count=0;while(count<countInferoir) {Random  random = new Random();int tempCount=random.nextInt(box.length);//System.out.println(tempCount);if(tempCount>=0&&tempCount<box.length&&(!status[tempCount])) {//没生成过这个数+边界检查status[tempCount]=true;box[tempCount]= INFERIOR;++count;continue;}}}public static void cheek(int []box) {int count=0;char boxOrder='B';if(box.length>30) {boxOrder='A';}System.out.print(boxOrder+"箱中的次品位置为: ");for(int i=0;i<box.length;++i) {if(box[i]==INFERIOR) {++count;System.out.print(i+" ");}}System.out.println(boxOrder+"箱中共有"+count+"个次品");}public static void fetch(int []box) {//Java里面这种情况应该也是传“地址”吧...瑟瑟发抖Random  random3 = new Random();int tempCount=random3.nextInt(box.length);if(tempCount>=0&&tempCount<box.length&&(!status[tempCount])) {status[tempCount]=true;//校验状态 模拟不放回if(box[tempCount]==GOOD) {//第一件正品++ firstCount;int tempCount2=random3.nextInt(box.length);while(status[tempCount2]) {//如果该数生成过了 则循环生成tempCount2=random3.nextInt(box.length);}if(box[tempCount2]==GOOD) {//第二件也是正品//成功++successCount;reStatus();return;}else {++failtureCount;reStatus();return;}}else {++failtureCount;reStatus();return;}}else {System.out.println("看到这个你代码有问题");reStatus();return;}}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Hello word!");//初始化两个数组//A 10/50//B 18/30int []Abox=new int [50];int []Bbox=new int [30];//两个箱子初始化问题,写出来清楚些//按题意,实际上令前xx个产品为次品仍可,但为了模拟随机性,随机分配次品//Java中Random()不分配种子时,会以time做种子,随机性满足需要for(int i=0;i<50;++i) {Abox[i]=GOOD;}for(int i=0;i<30;++i) {Bbox[i]=GOOD;}//true代表数已生成//重置状态数组reStatus();distribute(Abox,AboxInfer);reStatus();distribute(Bbox,BboxInfer);reStatus();cheek(Abox);cheek(Bbox);/*两箱产品初始化完成以下部分为抽样检查阶段*/System.out.println("本次实验共测试"+examCount+"次。 ");//抽取过程int tempCount=examCount;int countA = 0,countB =0;while(tempCount>0) {--tempCount;Random  random2 = new Random();int chooseCount=random2.nextInt(2);//0 A 1 Bif(chooseCount==0) {fetch(Abox);++countA;}else if(chooseCount==1) {fetch(Bbox);++countB;}}//抽取完成System.out.println("选到A箱"+countA+"次");System.out.println("选到B箱"+countB+"次");System.out.println("其中,第一次取到正品的次数为"+firstCount+",失败次数为"+failtureCount+",概率为"+(double)firstCount/examCount);System.out.println("其中,第一次取到正品的条件下,第二次仍然取到正品的次数为"+successCount+", 概率为"+(double)successCount/firstCount);}}

Hello word!
A箱中的次品位置为: 0 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 23 24 25 26 27 28 29 31 33 34 35 37 38 39 40 41 42 44 45 49 A箱中共有40个次品
B箱中的次品位置为: 1 3 7 9 10 11 14 16 19 20 25 28 B箱中共有12个次品
本次实验共测试100000次。
选到A箱50090次
选到B箱49910次
其中,第一次取到正品的次数为39883,失败次数为80580,概率为0.39883
其中,第一次取到正品的条件下,第二次仍然取到正品的次数为19420, 概率为0.48692425344131585

我们可以看到,更倾向于张宇/汤家风的答案。

张宇/王式安 考研数学 概率论争议题 【Java验证版】相关推荐

  1. 张宇/王式安 考研数学 概率论争议题 【Python验证版】

    张宇/王式安 概率论争议题 [Python版] 之前写过一篇关于这道题的Java验证版,但是当时的Java代码比较混乱,在这里补充一个Python代码.同样地,由于技术水平限制,这篇代码也存在很大的局 ...

  2. 考研数学 概率论争议题 [Python验证版]

    一.题目 有两箱同种类的零件,第一箱装50只,其中10只一等品:第二箱装30只,其中18只一等品.今从两箱中任挑出一箱,然后从该箱中取零件两次,每次任取一只,作不放回抽样.求 (1)第一次取到的零件是 ...

  3. 2022考研数学李永乐复习全书pdf版-基础篇(数一二三通用)

    2022考研数学李永乐复习全书pdf版-基础篇(数一二三通用):https://pan.baidu.com/s/1tK9cPPG5Q-xhasqb051ymQ  提取码:1111 本书是专门为准备参加 ...

  4. 原命题组组长王式安谈数学命题规律

    主持人:各位网友,大家好.欢迎各位再次来到海文考研博客.我是北京海文教育集团传媒中心负责人田振宇很高兴又和大家相聚在"雄心启动未来-2007考研权威复习策划"第三十九期节目.今天为 ...

  5. 两个特征是独立好还是正相关好_2021考研数学概率典型例题,都给你总结好啦!...

  6. 张宇课程,考研数学130+不是梦!

    链接:https://pan.baidu.com/s/1Y3QL_TBGyINbLXN9CZWssw  提取码:i692

  7. 考研数学张宇:7月复习规划

    转载于 考研数学张宇 各位同学们,马上步入7月份啦,愉快的暑假就要开始喽. 按照历年暑假的表现,我们一定会睡觉睡到自然醒,饭不做好不起床,一部网剧半个西瓜一包薯片一刷就是一下午,晚上更是三五好友一起哈 ...

  8. [资源下载]张宇老师讲授的数学视频(概率+高数+线代)

    张宇老师讲授的三套数学视频 最近发现有不少群友都在补数学的缺,原因是他们尝试学习机器学习的理论,却发现自己在微积分.概率统计.凸优化.线性代数方面的知识不够用,或者,准确地说,是-- 以前学的都还给数 ...

  9. 2022考研数学 张宇 基础班【配套张宇30讲】【免费分享】

    这是我在网上找了好久才找到的张宇考研数学 基础三十讲视频还有一些资料,我在本站的其他张宇数学考研资料感觉他们也太坑了...... 这是链接(于2022.02.24更新)(永久有效) 链接: https ...

最新文章

  1. linux下网卡状态,linux-网络状态
  2. 07-Windows Server 2012 R2 会话远程桌面-标准部署-RD授权
  3. 一种简单的LRU cache设计 C++
  4. 问题记录 | SpringMVC整合jackson版本问题
  5. 指令脚本redis线上环境监控脚本(python脚本)
  6. 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
  7. python的装饰器和find函数的使用
  8. 高等数学中一些数学定理和公式
  9. 第6章 面向对象基本特征
  10. php源码dede,php网站管理系统 DedeCMS v5.7 SP2 UTF8 20180109正式版
  11. 中关村e谷:产业服务终靠一颗赤诚之心
  12. python实现淘宝客服自动回复语_Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例...
  13. Unity Texture2D的可读性问题
  14. 什么是内存泄露?该怎么排查?Java内存泄漏策略
  15. 安卓逆向-马蜂窝zzzghostsigh算法还原--魔改的SHA-1
  16. 英文查重检测网站有哪些?
  17. 图像处理——轮廓检测
  18. 无线电视,有线电视和卫星电视
  19. Sony Vegas使用记录
  20. 一起写个Dubbo——0. 一些不得不说的话

热门文章

  1. Module not found: Error: Can‘t resolve ‘axios‘
  2. 甘特图如何在日历上表示工作日
  3. MySQL 语句中执行优先级——and比or高
  4. java类似金山打字的键盘模拟_使用vue写一个类似金山打字通
  5. cousera of pku:魔兽世界:终极版
  6. 正则表达式 学习笔记(三)
  7. 优优加速cdn带宽_cdn加速原理是什么,正常1m宽带服务器能提升多少速度-问答-阿里云开发者社区-阿里云...
  8. 江苏计算机等级考试vfp,江苏计算机等级考试二级vfp考试简介.doc
  9. 小学计算机校本课程前言,小学一年级信息技术校本课程开发研究
  10. 免费防火更强大 十大免费防火墙软件大盘点