見出し画像

【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




基礎 | 各桁の種類数を掛けていく

応用情報技術者 令和4年秋問24より

正答はア。正解してください。基礎問題レベル。顧客人数の計算が追加で必要なだけ。


顧客の人数分だけ、コードの桁数を準備する話。

まず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なら、偶数も奇数もあり、無関係そうな値です(素数ですし)。




要注意だけど間違っても気にしない

応用情報技術者 令和元年秋問1より

正答はウ。間違えても良いですよ。面倒なので。

「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種類の数字」と発想が必要でした。




全部の選択肢を考えれば良い

応用情報技術者 令和4年秋問01より

正答はイ。正解してください。過去問道場さんの解説もどうぞ。

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と一緒に考えてみてくれると嬉しいです。


応用情報技術者計算シリーズでお会いしましょう。計算問題に挑戦する粘り強さが、少しでも身に付いたら嬉しいです。でわでわ。


ここから先は

0字

メンバーシップ ¥ 500 /月

■初月無料なので、お試しください。 ■私独自の理解法や詳しい分析を公開したいです。 ■根本を丁寧に見…

【初月無料】Iパス法律/SG/AP計算/DBとSC午後2

¥500 / 月
1ヶ月無料 人数制限あり

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ