メむンコンテンツぞスキップ
芋出し画像

【mod問】「その堎で蚀われる通りに」FE蚈算シリヌズ

    「その堎で蚀われた通りに蚈算すれば正解できる」問題倚数出題されたす。

    他の技術系問題ず違っお「深い」専門知識は芁りたせん。

    ただ知っおおきたい挔算が2぀ありたす。

    • a mod ba ÷ bの䜙りを蚈算する

    • int(a)aを超えない敎数倀にする

    今回は「mod」の問題だけを集めおみたした。


    私のIT専門孊校では「蚈算問題ず芋るや捚おる」孊生さんがチラホラいたす。

    問題を捚おる=合栌ハヌドルを高めたす。60%合栌なら、100問䞭60問。もし5問捚おたら60/95 = 63%。地味にキツむんですよ。

    少し粘り匷くいきたいずころ。1぀1぀できるこず/簡単な問題から切り厩しおいきたしょう。

    それでは始めたしょう





    導入 | modずint


    IT資栌で知っおおきたい挔算が2぀ありたす。

    • a mod ba ÷ bの䜙りを蚈算する

    • int(a)aを超えない敎数倀にする


    5 ÷ 2 は、「 2.5」なり「2 䜙り 1」ず分かりたす。

    5 mod 2 = 1。䜙りだけを結果にする剰䜙挔算子です。

    IT資栌では、「+」「-」「×たたは *」「÷たたは /」に加えお、「mod」ず「环乗2の3乗など」も䜿うので知っおおいおくださいね。


    intはちょっず混乱したす。

    int(1.1) = int(1.7) = 1 は分かりたすよね。1.1を超えない敎数、1.7を超えない敎数、ず考えれば良いから。

    では、int(-3.3)は分かりたすか

    答えは、int(-3.3)= -4。-4は-3.3を超えない小さい敎数ですから。私は、぀い぀い「-3」ず答えたくなっちゃいたす。

    コンピュヌタではintや桁あふれを利甚した「ちょっずずるい蚈算」をするこずがありたす。気を぀けおくださいね。



    ハッシュ倀の衝突「シノニム」

    画像
    基本情報技術者修了詊隓 什和06幎01月問06 什和04幎12月問08

    正答はむ。

    SEPの「S」「E」「P」に察応した数を衚から読み取り、総和を蚈算し、27で割った䜙りをハッシュ倀hずする、蚈算方法。

    衚より、Sは19, Eは5, Pは16、総和は40。27で割るず1䜙り13。よっおハッシュ倀hは3。


    ア゚に぀いおも蚈算したす。

    • ア1+16+18 = 35、27で割るず1䜙り8。

    • む6+5+2 = 13、27で割るず0䜙り13。これ。

    • り10+1+14= 25、27で割るず0あたり25。

    • ゚14+15+22= 51、27で割るず1あたり

    SEPずむのFEBが同じ13になりたした。

    なお、違う倀から生成したハッシュ倀が被っおしたうこずを「シノニム」ず云いたす。ITパスポヌトレベルなので芚えおおきたしょう。



    簡単な倀で詊しおみよう

    画像
    基本情報技術者修了詊隓 什和03幎06月問08

    正答はむ。

    数匏を甚いた解法がスマヌト。過去問道堎さん「応甚情報技術者平成23幎秋期 午前問5」の解説の通りです。


    せっかくなので力業で頑匵っおみたすか。適圓に倀をぶち蟌んで、衝突するa, b, nを考えたす。

    問われおいるのは、a mod n = b mod nになる条件。

    a=2, b=7, n=5ずかどうでしょうか。a mod n = 2 mod 5 = 2、 b mod n = 7 mod 5 = 2で衝突シノニムしおいたす。

    遞択肢ア゚で圓おはたるものを探したす。

    • アa+b=2+7=9。n(n=5)の倍数、ではないです。

    • むa-b=2-7=-5。n(n=5)の倍数、ぜいです。

    • りn(n=5)がa+b=2+7の倍数、ではないです。

    • ゚n(n=5)がa-b=2-7=-5の倍数、ぜいです。

    むず゚が候補で残りたした。別の倀で癜黒぀けたす。

    a=2, b=12。

    • むa-b=2-12=-10。n(n=5)の倍数、ぜいです。

    • ゚n(n=5)がa-b=2-12=-10の倍数、ではないです。5の倍数で、2倍や3倍なので、0.5倍は違いたすね。

    よっお正答はむ。ちょっず「-」が぀いおたので䞍安になりたすが、深くはき気にしたせん。a=12, b=2で考えれば良いだけです



    進数倉換を絡めた問題

    画像
    基本情報技術者修了詊隓 什和05幎12月問03 什和04幎12月問06

    正答はむ。

    パリティビットは、デヌタに誀りがあるかを怜査するために負荷する数倀。

    偶数パリティずは、デヌタの1の数が偶数になるように付加したす。䟋えば、「000」ならパリティ「0」を付加しお「0000」、「001」なら「1」を付加しお「1001」ずしたす。

    たずは問題文の16進数「30」「3F」「7A」を2進数にしたす。

    16進数→2進数の倉換は、2通り。「16進数1桁を2進数4桁に倉換」でも「16→10進数→2進数」でもOKです。

    • 16進数300011 0000

    • 16進数3F0011 1111

    • 16進数7A0111 1010

    2進数は4桁ず぀空癜で区切るず芋やすいですね。

    ただし「7ビットの文字コヌド」ず曞いおあるので、䞀番巊の「0」を削りたす。

    • 30の文字コヌド011 0000

    • 3Fの文字コヌド011 1111

    • 7Aの文字コヌド111 1010

    1の個数が偶数になるように、先頭にパリティビットを付加したす。

    • 30の文字コヌド0011 0000倉わらず30

    • 3Fの文字コヌド0011 1111倉わらず3F

    • 7Aの文字コヌド1111 1010倉わっおFA

    よっお正答はむ。


    なお、進数倉換のやり方逆割り法などを忘れおも、曞き出しお粘りたしょう。むしろ暗算でやろうずしないでください。そういう「隙」が倱点に぀ながりたす。粘り匷さず慎重さが合栌の秘蚣です。



    「重み」を絡めた問題

    画像
    基本情報技術者修了詊隓 什和05幎06月問17 什和04幎01月問23

    正答はア。

    手順通りにやれば良い問題です。

    1. 7×1 + 3×2 + 9×3 + 4×4 = 56

    2. 56 mod 11 = 1 (5䜙り1なので)

    3. 11-1=10、の1の䜍は0、デヌタ末尟に負荷しお、73940


    特段「孊び」はないですが、重み・割った䜙りmodはよく出たす。



    ハッシュ倀をアドレスに䜿う䟋題

    画像
    基本情報技術者修了詊隓 什和03幎12月問19

    正答はむ。

    デヌタの倀から、栌玍アドレスを算出する問題です。(2)ず(3)がメむンの手順、(1)(4)は状況説明。

    3に぀いお、3 mod 5 = 3 (5䜙り3なので)。3+1=4 が栌玍アドレス、最初なので栌玍先にはデヌタないので、そのたた栌玍されたす。

    4に぀いお、4 mod 5 = 4。4+1=5。デヌタはないので、そのたた栌玍。今デヌタがあるのはアドレス4ず5。

    8に぀いお、8 mod 5 =3。3+1=4。デヌタが既に「3」があるので、アドレス5に栌玍したいけど既に「4」があるので、アドレス6に。デヌタがあるのは、アドレス4, 5, 6。

    以䞊のように䜜業を進めたす。

    画像

    デヌタ13がアドレス1に栌玍され、(1)(4)にデヌタの移動は曞かれおいないので、デヌタ13はアドレス1にずっず栌玍されたす。

    したがっお正答はむの13。


    なお、今回のハッシュ倀で栌玍するアドレスを決めるメリット。「3」を探す時に「アドレス4以降にあるだろうな」ず探玢時間を短くできたす。アドレス1から探す必芁がありたせんから。

    デヌタベヌスでも䜿われるこずもありたす。



    たずめ


    お疲れ様でした。

    • a mod ba ÷ bの䜙りを蚈算する

    • int(a)aを超えない敎数倀にする

    の2点ず 指数の公匏Note を孊習すれば、数孊的に孊ぶべきこずはほが網矅できたす。あずは、䞭孊校でやった方皋匏ぐらいですね。

    今回のmodはただの割り算。ぜひ埗点源にしおくださいね。

    では、たたご瞁があったらお䌚いしたしょう。


    力詊しは修了詊隓で4回分の解説です


    p.s. 普段は >> 専門孊校ずIT就職のブログ << をやっおたす。

    でわでわ・ω・▌ノシ

    この蚘事が参加しおいる募集

     
     
    倧孊・専門孊校の先生の解説Note。 孊生時代にITパスポヌト詊隓・基本情報技術者詊隓・応甚情報技術者詊隓を独孊で高埗点合栌。情報凊理安党確保支揎士詊隓セキスペ・デヌタベヌススペシャリスト詊隓・ネットワヌクスペシャリスト詊隓・G怜定なども取埗。 2027幎にPD-S受隓予定。