首页 > 试题广场 >

现在有一个程序由A,B两个同学结对编程完成,在整个程序中的代

[单选题]
现在有一个程序由A,B两个同学结对编程完成,在整个程序中的代码比例是3:5,据往常的统计A同学的千行代码缺陷率为10 ,B同学的千行代码缺陷率为15 ,现在在改程序中发现了一个缺陷,那么是由A同学的代码引起的缺陷的概率为____。
  • 28.6%
  • 37.5%
  • 40.0%
  • 47.4%
  • 52.6%
  • 71.4%
Ack头像 Ack
出现Bug的事件为Bug,A写的代码有bug的事件为A。。。
P(A|Bug)=P(Bug|A)*P(A)/P(Bug)
P(Bug)=P(Bug|A)*P(A)+P(Bug|B)*P(B)
。。。
编辑于 2015-09-01 18:37:25 回复(1)
这个题目还是很重要的,考察全概率和贝叶斯。如下摘自网络:

1、全概率公式:首先建立一个完备事件组的思想,其实就是已知第一阶段求第二阶段,比如第一阶段分A B C三种,然后A B C中均有D发生的概率,求D的概率:
P(D)=P(A)*P(D/A)+P(B)*P(D/B)+P(C)*P(D/C)
2、贝叶斯公式,也叫逆概公式,在全概率公式理解的基础上,其实就是已知第二阶段反推第一阶段,关键是利用条件概率公式做变换,跟上面建立的A B C D模型一样,已知P(D),求在A发生下D发生的概率,这就是贝叶斯公式:
P(A/D)=P(AD)/P(D)=P(A)*P(D/A)/P(D).
发表于 2016-08-11 09:41:03 回复(0)
数学计算题
A程序员发生bug概率0.01%
B程序员发生bug概率0.015%
0.01%*(3/8)/(0.01%*(3/8)+0.015%*(5/8))
发表于 2015-09-15 22:45:38 回复(3)
记发现BUG为事件BUG,A编写代码为事件A,B编写代码为事件B,则
A编写的代码中发现BUG的概率为P(BUG|A)=0.01%
B编写的代码中发现BUG的概率为P(BUG|B)=0.015%
对于已经编好的一个程序,P(A)=3/8,P(B)=5/8
根据贝叶斯公式得:
P(A|BUG)=P(A)P(BUG|A)/{P(A)P(BUG|A)+P(B)P(BUG|B)}=3/8*0.01%/(3/8*0.01%+5/8*0.015%)
发表于 2016-04-17 16:26:24 回复(2)
假设A写了3000行,B写了5000行,那么A写了30个bug,B写了75个
发现1个bug,是A写的概率是30/(30+75)=28.6%
发表于 2018-09-05 00:13:44 回复(2)
C

    (3/8 * 0.01%) / (3/8 * 0.01% + 5/8 * 0.015%) ~ 28.57%
编辑于 2015-08-31 11:09:57 回复(3)
3*0.01% : 5*0.0015% = 2 : 5
2/7 = 28.6%
发表于 2017-04-24 21:10:05 回复(0)
假设8000行代码;A写的代码:3000行; B写的代码:5000行; A含bug代码:3000*10% = 300行;B含bug代码:5000*15% = 750行;
300/(300+750) = 28.6%;
发表于 2020-07-01 19:37:08 回复(0)
这道题属于贝叶斯定理:
设置:
BUG发生的概率为P(BUG)
A出现BUG概率为P(A),P(A)为0.01%
那么该问题的实质是:在已知是BUG的情况下,该BUG由A造成的概率是多少?
其实是条件概率,答案是P(A|BUG).
那么P(A|BUG)是如何求得呢?
根据贝叶斯公式:P(A|BUG)=P(BUG|A)*P(A)/P(BUG)
P(BUG|A)理解为A写的代码出BUG以后,BUG出现的概率(有点绕口,也就是说已知A写的代码有bug了,这个bug引起这个代码发生的概率是3/8)。
P(BUG)=P(BUG|A)+P(BUG|B)。因为A和B是相互独立的。
所以答案   (3/8)*0.01%/[3/8*0.01+5/8*0.15]
发表于 2015-09-22 10:27:40 回复(0)
设A事件为代码是由A写的,P(A)=3/8,D事件为代码出现了BUG,P(D|A)就是A写的代码出错的概率,P(D|A)=0.1, P(D)为普遍意义上代码出错的概率,P(D) = P(D|A)*P(A)+P(D|B)*P(B)
发表于 2025-09-19 18:26:02 回复(0)
3x10=30,5x15=75,75+30=105,30/105~28.57
发表于 2023-05-11 20:29:23 回复(0)
3/8*10/1000+5/8*15/1000=21/1600*8/3=7/200,10/1000*200/7=2/7*100%=28.6%
发表于 2022-09-21 10:57:55 回复(0)
我来给一个不严谨的思路。😏😏😏
先不考虑代码量 如果出了bug a程序员概率是40%
再考虑代码量  a与b代码量 比 3 :5  
答案肯定在40%以下 
凭借第六感 认为不可能是%37
算命结果:选A
发表于 2020-07-30 02:02:57 回复(1)
表示怎么想都觉得应该是E选项37.5%。因为有BUG已经是一个事实了,只要确定代码是不是A写的就行了。
发表于 2017-04-21 17:00:38 回复(1)
贝叶斯公式
发表于 2017-03-14 18:04:18 回复(0)
贝叶斯公式:P(B 丨A)=P(A丨B)*P(B)/P(A)
发表于 2017-02-14 15:37:14 回复(0)
出现Bug的事件为Bug,A写的代码有bug的事件为A,B写的代码有bug的事件为B,
P(A)= 0.01%;P(B)=0.015%;
A造成程序有bug的概率P(Bug|A)= (3/8);
B造成程序有bug的概率P(Bug|B)=( 5/8);
P(A|Bug)=P(Bug|A)*P(A)/P(Bug)
P(Bug)=P(Bug|A)*P(A)+P(Bug|B)*P(B)
发表于 2016-04-20 16:21:35 回复(0)
(3/8 * 0.01%) / (3/8 * 0.01% + 5/8 * 0.015%) ~ 28.57%

转自 核桃人
发表于 2016-03-14 22:27:13 回复(0)
p(A|BUG)= P(ABUG)/P(BUG)=P(BUG|A)P(A)/P(BUG)=P(A)/P(BUG)
发表于 2015-10-06 11:37:44 回复(0)
A和B的代码比例是3:5,发现一个bug,它的代码是A写的概率不是3/8=32.5%,不应该选D吗?
发表于 2015-09-08 01:41:13 回复(2)