Cracking Coding Interview - 6.2 Basketball

Basketball: You have a basketball hoop and someone says that you can play one of two games.

  • Game 1: You get one shot to make the hoop. 投篮一次即中。
  • Game 2: You get three shots and you have to make two of three shots. 投三次中两次。

If p is the probability of making a particular shot, for which values of p should you pick one game or the other?

Hints:#181, #239, #284, #323

备注:basketball hoop的意思是篮筐。

解法

Game 1的成功率是p。

Game 2的成功率 = P(3投2中) + P(3投3中),P代表概率

P(3投3中) = p3

P(3投2中) = P(hit, hit, miss) + P(hit, miss, hit) + P(miss, hit, hit)

​ = p * p * (1 - p) + p * (1 - p) * p + (1 - p) * p * p

​ = 3p2 - 3p3

Game 2的成功率 = 3p2 - 2p3

当Game 1的成功率 > Game 2的成功率的时候,可以选择Game 1,反之则选择Game 2。

p > 3p2 - 2p3

1 > 3p - 2p2

3p - 2p2 < 1

3p - 2p2 - 1 < 0

2p2 - 3p + 1 > 0

(2p - 1) * (p - 1) > 0

如果要不等式成立,那么必须左右两边都是正数或负数,因为 p < 1,所以 p - 1 肯定 < 0,因此就变成了 2p - 1 < 0,得到 p < 0.5,也就是当 p < 0.5的时候,选择Game 1,否则选择Game 2。

感想:

这道题是看答案得到的,关键点有两个:

  1. 计算连续hit的概率是p的n次方(n=连续的次数)
  2. 要把3投2中的各种情况都计算进去

版权

评论