您的位置:首页 > 职场人生

两道笔试题

2015-08-25 11:59 330 查看
1、设一颗完全二叉树共有699个节点,则这颗树种叶子节点共有多少个?

首先记n为二叉树节点总数,n0 , n1 , n2位二叉树中度为0 , 1 , 2的节点数。

则有:n = n0 + n1 + n2;

又因为二叉树的规律:n0 = n2 + 1

同时,很显然,完全二叉树中n1要么是0,要么是1,而且二叉树中节点数一定为整数。

可得:n = n0 + 1 + n0 - 1 或者 n = n0 + 0 + n0 - 1 即 n0 = n/2 或者 n0 = (n + 1)/2

从而n0 = 700/2 = 350

关于二叉树的规律 n0 = n2 + 1的论证:

同样记 n = n0 + n1 + n2; (1)

由很显然的关系,二叉树中节点数目等于树枝数目加1,而叶子节点不生成树枝,一度节点生成一个树枝,二度节点生成二个树枝。

从而有:n2 * 2 + n1 = n -1; ==> n = n2 * 2 + n1 + 1; (2)

由(1) 、 (2) 两式可得 n0 = n2 + 1;

2、现有一软件,有A、B两个程序员共同完成,A、B的代码贡献比为6 : 4, A、B的bug率为0.1% 和0.15% , 现在这个软件出现一个bug,请问由A造成的概率为?

首先这个软件出现bug的概率为:P(A) = P(B1) * P(A|B1) + P(B2) * P(A|B2) = 6/10 * 0.10% + 4/10 * 0.15%

而现在要求的问题是P(B1 | A) = P(AB1) / P(A) = P(A|B1) * P(B1) / P(A) = (6/10 * 0.10) / (6/10 * 0.10 + 4/10 * 0.15) = 0.06 / 0.12 = 0.5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序员笔试