戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2019年 秋期 82


問題文

次の体系をもつ電話番号において、80億個の番号を創出したい。番号の最低限必要な桁数は幾つか。ここで、桁数には“020“を含むこととする。
ITパスポート 2019年 秋期  問82の問題画像

選択肢

11
12
13(正解)
14

🔒 解説は解答すると表示されます

電話番号の桁数の最小値("020" を含む)【ITパスポート 解説】

正解の理由

設問では「020」に続く桁を使って合計で80億(=8 × 10^9)個の番号を作りたい、という問題です。
最初の可変桁(「020」の直後)は「1~3及び5~9」の8通り、残りの可変桁はそれぞれ0~9の10通りです。したがって、可変桁が k 個あるとき作れる番号数は です。これが80億以上になる最小の k を求めると、可変桁は10個で、総桁数は "020" の3桁を含めて 3 + 10 = 13 になります。選択肢では に対応します。

解法ステップ

  1. まず「80億」を数式で表す:80億 = (1億 = )。
  2. 可変部分の最初の桁の選択肢は 1,2,3,5,6,7,8,9 の8通り。以降の各桁は0~9の10通り。
  3. 可変桁数を k とすると、総組合せ数は (最初の桁で8通り、残り k-1 桁で10^{k-1} 通り)。
  4. 不等式を立てる: 両辺を8で割ると となる。
  5. よって 、すなわち 。最小は
  6. 総桁数は "020" の3桁を含めて

選択肢別の誤答解説

  • ア: 11
    総桁数11なら可変桁 k = 8。作れる数は (8千万)。80億に遠く及ばない。
  • イ: 12
    総桁数12なら k = 9。作れる数は (8億)。まだ足りない。
  • ウ: 13
    総桁数13なら k = 10。作れる数は (80億)。必要数にちょうど到達するので最小。
  • エ: 14
    総桁数14なら k = 11。作れる数は (800億)で十分だが、「最小」を求める問いには大きすぎる。

よくある誤解

  1. 「80億」の読み違い:日本語の「億」は なので、80億 = 。ここを (つまり8億)と誤ると答えがズレます。
  2. 最初の可変桁を9通りとする誤り:範囲が「1~3及び5~9」であるため、0と4が使えず選べるのは8通りです(1,2,3,5,6,7,8,9)。
  3. 足し算で考える誤り:各桁の選択は独立なので「掛け算(乗法原理)」で場合の数を求めます。桁ごとの選択肢数を足してはいけません。

補足コラム

  • 一般化のコツ:先頭桁だけ選択肢が異なるときは「先頭の通り数 × 残りの桁の通り数」で表せます。今回のように残りが10進(0~9)でそろっている場合は指数で簡潔に書けます。
  • 電卓やメモでの確認:可変桁 k を変えて を計算すれば、必要な最小 k がすぐに見つかります。短いスクリプトで確認する方法例を示します。
target = 8 * 10**9  # 80億
for k in range(1, 20):
    count = 8 * 10**(k-1)
    if count >= target:
        print("必要な可変桁 k =", k, "総桁数 =", 3+k)
        break

FAQ

Q1. 「各桁に0~9を指定」と「1~3及び5~9」の違いは?
A1. 前者はその桁が0,1,2,...,9の10通りで良い、後者はその桁が1,2,3,5,6,7,8,9の8通りで良い、という意味です。設問図で最初の四角だけ別注記がある点に注意します。
Q2. 「ちょうど80億」作れなければダメですか?
A2. 問いは「80億個の番号を創出したい。最低限必要な桁数は幾つか。」なので、80億以上作れる最小の桁数を求めます。ちょうど等しくても良いし、それ以上になっても問題は満たされますが「最小」を取ります。
Q3. どうして掛け算するの?
A3. 各桁の選択は独立で、ある桁の選択が他の桁の選択に影響しないため、それぞれの通り数を掛け合わせて全体の通り数を求めます(乗法原理)。

関連キーワード: 電話番号 桁数、場合の数、乗法原理、指数、10進数、桁数計算、組合せ(基礎)
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について