已知 22021 是首位為 2 的 609 位數,求 20、21、...、22021 中有多少個數是首位為 4 的。
解:記20、21、...、22021 中首位為 a 的數有 F(a) 個,a 可以取 1 到 9 范圍內的自然數。顯然有 F(1) + F(2) + ... + F(9) = 2022
當 2n 是首位為 a 的 u 位數時,可記為 2n = a.x · 10u,x 表示 2n 的科學記數法的小數部分,如:
20 = 1.0 · 100,21 = 2.0 · 100,22 = 4.0 · 100,23 = 8.0 · 100
24 = 1.6 · 101,25 = 3.2 · 101,26 = 6.4 · 101
27 = 1.28 · 102,28 = 2.56 · 102,29 = 5.12 · 102
...
由上面的示例容易發現,一位數(1,2,4,8)中有一個首位為 1 的數;兩位數(16,32,64)中有一個首位為 1 的數;三位數(128,256,512)中有一個首位為 1 的數...
這很容易理解,當 2n 的首位 a 大於等於 5 時,2n+1 的首位必然為 1(10 ≤ 2·a.x < 20),且 2n+1 的位數比 2n 的位數大 1。
已知 22021 是首位為 2 的 609 位數,由此可知,20、21、...、22021 中 609 位數只有 22020 和 22021,這兩個數的首位分別為 1 和 2。
於是有 F(1) = 609,以及
F(5) + F(6) + F(7) + F(8) + F(9) = 609 - 1 = 608
當 1.x < 1.5 時,[1.x · 2] = 2;當 1.x ≥ 1.5 時,[1.x · 2] = 3,於是有
F(1) = F(2) + F(3)
因而 F(4) = 2022 - 609 · 2 - 608 = 196。
拓展題:已知 22021 是首位為 2 的 609 位數,求 50、51、...、52021 中有多少個數是首位為 4 的。
解:記50、51、...、52021 中首位為 b 的數有 G(b) 個,b 可以取 1 到 9 范圍內的自然數。顯然有 G(1) + G(2) + ... + G(9) = 2022
當 2n 是首位為 a 的 u 位數時,可記為 2n = a.x · 10u,x 表示 2n 的科學記數法的小數部分。同樣地,當 5n 是首位為 b 的 v 位數時,可記為 5n = b.y · 10v,y 表示 5n 的科學記數法的小數部分。
由 2n·5n=10n可知, a.x · 10u · b.y · 10v=10n
當 n = 0 時,有 a = b = 1 和 u = v = 0;
當 n ≠ 0 時,有
a.x · b.y = 10 ①
u + v + 1= n ②
由 ① 易知:
當 a = 1 時,b = 5, 6, 7, 8, 9,反之亦然;
由對稱性,又有:
當 b = 1 時,a = 5, 6, 7, 8, 9,反之亦然。
於是就有
G(5) +G(6) + G(7) + G(8) + G(9) = F(1) - 1 = 608
G(1) = F(5) + F(6) + F(7) + F(8) + F(9) + 1 = 609
再由 [b.x · 5] = 1可推知 b = 2, 3,但是打頭的 50 沒有對應這個關系的 b,於是有
G(2) + G(3) = G(1) - 1 = 608
因而 G(4) = 2022 - 609 - 608 - 608 = 197。
