【AP3問】文字種/ビット桁での表現個数/最大値(応用情報技術者試験)
このNoteでは、応用情報技術者の計算問題から「文字種・桁数で表現できる個数」を搔き集めました。令和7年~元年の11回で3問しかなかったですが。
基礎は基本情報技術者Noteの通りで、応用情報技術者では追加の計算や条件があるぐらいです。>パターン・組み合わせと少し確率(FE計算シリーズ)Note
「2のn乗」「2のn-1乗」「2のn乗を-1」など、公式で混乱している方は、ぜひ読んでください。公式なんて覚えず、その場で確認する方がお薦めです。
訳も分からず公式を使い、覚え間違いで失点なんて愚かです。イチイチ確認をして納得いく解答をしたいです。また、「考える力」も身に付きます。
それでは始めましょう!
桁数と表現数・最大値
「何種類」の文字列/数字を「何桁」で「何パターン」が表現できるか。パスワードでもIPアドレスの個数でも使う計算です。
計算方法は「各桁の文字種類を掛けていく」。
たとえば10進数2桁。10の位は0~9の10種類、1の位も0~9の10種類、よって10×10=100個表現できます。
ここで「個数」「最大値」には注意です。
10進数2桁は00~99の100個、最大値は99。100-1の「-1」する時もあると注意。
以上を公式で覚えると混乱します。「10のn乗」とか「2のn乗から-1する」とか「2のn-1乗」とかとか。
毎回簡単な数値で確認してください。今回のように「10進数2桁のとき~」とか「2進数3桁のとき~」と。
基本情報技術者でも計算特集したのでどうぞ。>パターン・組み合わせと少し確率(FE計算シリーズ)Note
基礎 | 各桁の種類数を掛けていく

正答はア。正解してください。基礎問題レベル。顧客人数の計算が追加で必要なだけ。
顧客の人数分だけ、コードの桁数を準備する話。
まず3年後の顧客数を見積もり。現在が8,000人、1年後に2割増しなので9,600人、2年後は11,520人、3年後は13,824人。
顧客コードは1桁で26種類、2桁で26×26=676種類、3桁で17,576種類を表現できます。
顧客13,824人は、2桁の676種類では足りず、3桁の17,576種類なら足ります。よって3桁(ア)が正解。
簡単な例で試す
6種類が考えにくい場合、0~9や0~1など単純な例で考えてください。計算方法・公式が確認できれば後は、数字遊びです。
文字種が0, 1の2種類だけなら、1桁では2種類(0, 1)、2桁では4種類(00, 01, 10, 11)、3桁では8種類(000,・・・,111)。これだけで、「2の3乗だな」とか「各桁が2種類、桁数だけ掛けるから2×2×2」など推測できます。
「公式を覚える」「忘れたら解けない」ではなく、その場で導くようにすると地頭も粘り強さも良くなります。
その際、2だけじゃなく3や4でも考える必要性も分かります。
例えば2桁では2×2ですが、「2の2乗」なのか「2に2を掛けている」のか分かりませんよね。3桁まで考えて「2の3乗」であって「2に3を掛けてるわけじゃない」と分かります。
計算方法の確認では、必ず2~3例で試して下さい。また個人的には、0や1は避け、2, 3, 5, 7あたりが良いと思います。
0や1では掛け算足し算に参加しない場合もあるし、2と4は2倍になっただけで確認にならない場合があります。2, 3, 5, 7なら、偶数も奇数もあり、無関係そうな値です(素数ですし)。
要注意だけど間違っても気にしない

正答はウ。間違えても良いですよ。面倒なので。
「4と9を使わない=8進数」とスマートに解くのは過去問道場さんへ。
私は数え上げます。
0001~0299は、1×3×8×8-1=191。0000を抜くので「-1」。
0300~0330の31個。300を含めるので+1。1~10で10個、1~30で30個。0を含めるので+1。更に、うち0304, 0309, 0314, 0319, 0324, 0329以外なので25個。191+25=216。
一気に数えようとした方は、140, 141, 142…のように、まとまって削除すべき領域を考える所で面倒になりましたよね。「4と9を使わない=8種類の数字」と発想が必要でした。
全部の選択肢を考えれば良い

正答はイ。正解してください。過去問道場さんの解説もどうぞ。
nを1ビットから3ビットぐらいまでにして、aとbの関係を見てみます。
aがn=1ビットの時、aは0~1、bは0~1、よってbは2進数1桁。
aがn=2ビットの時、aは0~3、bは0~9、よってbは2進数4桁。
aがn=3ビットの時、aは0~7、bは0~49、よってbは2進数6桁。
以上より、n=1の時1、n=2の時4、n=3の時6になるのは、イ(2n)。
まとめ
お疲れ様でした!
では問題。「2進数3桁で表現できる個数は? 最大値は?」。
個数は、8個。最大値は7。
各桁が2種類(0, 1)なので、2×2×2=2の3乗=8。最大値は111、基数変換して7。8個と最大値7で1違うのは、000を1個数えているから。
以上の話が通じたなら大丈夫。通じないなら、もう一度このNoteと一緒に考えてみてくれると嬉しいです。
応用情報技術者計算シリーズでお会いしましょう。計算問題に挑戦する粘り強さが、少しでも身に付いたら嬉しいです。でわでわ。
ここから先は
メンバーシップ
¥ 500 /月
学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ
