マナビング基本情報技術者

顧客の増加を見込んだコードの桁数の求め方

基本情報技術者試験 平成29年度春期 午前 問23 / ユーザーインタフェース › UX/UIデザイン

過去問にチャレンジ

平成29年度春期 午前 問23

顧客に,A〜Zの英大文字26種類を用いた顧客コードを割り当てたい。現在の顧客総数は8,000人であって,毎年2割ずつ顧客が増えていくものとする。3年後まで全顧客にコードを割り当てられるようにするためには,顧客コードは少なくとも何桁必要か。

  1. ア

    3

  2. イ

    4

  3. ウ

    5

  4. エ

    6

会話形式の解説

講師講師
この問題では、3年後の顧客数と、桁数ごとに作れるコードの数を比べます。
受験者受験者
毎年2割増えるなら、8,000人の2割である1,600人を3回足せばよいですか。
講師講師
毎年、前年の人数から2割増えます。したがって、8,000に1.2を3回掛けます。
受験者受験者
8,000×1.238{,}000 \times 1.2^{3}で、3年後は13,824人ですね。
講師講師
はい。英大文字は1桁につき26通りなので、n桁なら26n26^{n}通りのコードを作れます。
受験者受験者
13,824通り以上になる最小の桁数を探すのですね。2桁ではどうですか。
講師講師
2桁は262=67626^{2} = 676通りで足りません。3桁は263=17,57626^{3} = 17{,}576通りなので、全員に別々のコードを割り当てられます。
受験者受験者
4桁でも割り当てられますが、3桁で足りるなら『少なくとも』の答えにはならないのですね。
講師講師
そのとおりです。4桁は456,976通り作れますが、必要な最小の桁数ではありません。
受験者受験者
5桁や6桁も、作れるコードがさらに増えるだけですね。
講師講師
はい。5桁は11,881,376通り、6桁は308,915,776通りです。どちらも足りますが、最小ではありません。
受験者受験者
増加は前年の人数を基準に計算し、コードは足りない桁数と足りる桁数を比べて決めるのですね。
講師講師
その考え方です。毎年の増加分を最初の人数から固定して計算しないようにしましょう。

まとめ

3年後の顧客数は、8,000×1.23=13,8248{,}000 \times 1.2^{3} = 13{,}824人です。英大文字26種類を使うコードは、n桁で26n26^{n}通り作れます。2桁の676通りでは足りず、3桁の17,576通りで足りるため、必要な最小の桁数は3桁です。

解答・解説

正解はアです

この問題のテーマ

毎年一定の割合で増える顧客数を見積もり、26種類の英大文字で全員に別々のコードを割り当てるのに何桁あれば足りるかを求める問題です。

解き方の考え方

まず3年後の顧客数を求めます。「毎年2割ずつ増える」とは前の年の人数を1.2倍することなので、8,000×1.2×1.2×1.2=8,000×1.728=13,824人になります。次に、1桁あたり26通りの文字をn桁並べると26n26^{n}通りのコードが作れるので、26n26^{n}が13,824以上になる最小のnを探します。262=67626^{2} = 676では足りず、263=676×26=17,57626^{3} = 676 \times 26 = 17{,}576で初めて13,824を上回るため、答えは3桁です。

選択肢ごとの解説

  1. ○ア  3
    3桁のコードは17,576通り作れるので、3年後の13,824人全員に別々のコードを割り当てられます。1桁減らした2桁では676通りしかなく足りないので、3桁が必要な最小の桁数です。
  2. ×イ  4
    4桁なら456,976通り作れるので、13,824人は十分にまかなえます。しかし3桁でもすでに足りているため、問われている「少なくとも何桁」の答えにはなりません。
  3. ×ウ  5
    5桁では11,881,376通りになり、13,824人に対して余りが非常に大きくなります。3桁で足りるので、最小の桁数ではありません。
  4. ×エ  6
    6桁なら308,915,776通り作れますが、必要な人数をはるかに超えています。3桁で足りるため、最小の桁数としては誤りです。

補足

毎年の増加分を最初の8,000人の2割(1,600人)として3年分を足すと12,800人になり、1.2倍を3回掛けた13,824人とは一致しません。この問題ではどちらで計算しても3桁になりますが、割合で増える場合は前年の人数を基準に掛け算するのが正しい計算方法です。

POINT

  • k種類の文字をn桁並べると、作れるコードはknk^{n}通りです。
  • 必要な桁数は、knk^{n}が対象の件数以上になる最小のnで、半端が出たら切り上げて整数にします。
  • 「毎年x割ずつ増える」は、毎年(1+x/10)倍を年数の回数だけ掛けて計算します。
  • 「少なくとも何桁」と聞かれたら、足りる桁数のうち最も小さいものを答えます。

※出典:平成29年度春期 基本情報技術者試験 午前 問23