问:给定数字1~100,000,000数字中,计算1出现的次数,如数字11(1出现两次)
答:
1、加上数字0,不影响结果(0没有包含数字1)
2、100,000,000,1出现1次
3、计算 0 ~ 99,999,999中1的次数,该问题等价于 00,000,000 ~ 99,999,999数字中1出现的次数(总数字个数为100,000,000),该问题,可进一步分解为8个情况:
8位都是1的数字个数S8,
8位有7位是1的数字个数S7,
8位有6位是1的数字个数S6,
…..,
8位中只有一位是1的数字个数S1。
4、所以1出现的总数为 1 + S8*8 + S7*7 + … + S1*1
5、其中Sn = Pn * 100,000,000 , Pn为数字中出现n个1的概率 ( 0<n<9,n为整数)
6、Pn = C(8, n) * 0.1^n * 0.9^(8-n)
7、所以1出现的总数为
1 +
C(8, 8) * 0.1^8 * 0.9^0 * 100,000,000 * 8 +
C(8, 7) * 0.1^7 * 0.9^1 * 100,000,000 * 7 +
C(8, 6) * 0.1^6 * 0.9^2 * 100,000,000 * 6 +
C(8, 5) * 0.1^5 * 0.9^3 * 100,000,000 * 5 +
C(8, 4) * 0.1^4 * 0.9^4 * 100,000,000 * 4 +
C(8, 3) * 0.1^3 * 0.9^5 * 100,000,000 * 3 +
C(8, 2) * 0.1^2 * 0.9^6 * 100,000,000 * 2 +
C(8, 1) * 0.1^1 * 0.9^7 * 100,000,000 * 1
= ?