平成30年秋期午後問3

全くわからないさん  
(No.1)
https://www.ap-siken.com/kakomon/30_aki/pm03.html
設問3のプログラムが理解できません
解説を読んでもわからないです。
特にエが分からないです。
なぜ論理積を用いるのかもわからないです。
具体例などを出して教えていただけたら幸いです。
助けてください
2022.09.13 11:05
Rさん 
(No.2)
この問題のプログラミング穴埋め部分は最難関だと思っています。

配列ではなくてビット演算であることが論理演算を使っている理由です。
配列であれば、(イメージ的に)左から攻めていくのですが、ビット演算なので右から攻めていってます。
しかし、各層の1文字分の検査は、各文字の左から攻めていってます。
なので、右から何ビットかずつずらして1文字ずつ切り出すマスクを作っているんですね。

いろいろ全部言っても混乱するので、まずはこのイメージを固めてから問題と解説を読んでみるとちょっとは変わると思います。それでもピンとこなければ次の段階をお伝えします。
2022.09.13 13:14
全くわからないさん  
(No.3)
>Rさん
回答ありがとうございます。
申し訳ございません
次の段階を教えていただきたいです。
このプログラムの流れなど詳しく教えていただきたいです。
2022.09.13 13:44
全くわからないさん  
(No.4)
このレベルのプログラムを完全に理解しないと本番でも厳しいでしょうか?
2022.09.13 13:47
AP受かりたいマンさん 
(No.5)
何処まで理解しているかによってアドバイスの内容が大きく異なる問題だと思います。
前提として構造体の理解は大丈夫でしょうか?
まずこの部分をクリアしないとプログラムを読んでも意味がわからないと思います。
第二段階として構造体に入っているキー値がどんな値なのかの理解は大丈夫でしょうか?
ここまで分かったら恐らく解説が理解できると思います。
2022.09.13 15:48
AgentTakaさん 
AP シルバーマイスター
(No.6)
AP受かりたいマンさん
こんばんは

お久しぶりです。
その後調子はいかがですか。手応え感じているんじゃないですか。
今は勉強に集中して頂いてお返事は不要!
合格発表でAP受かりたいマンさんの成果を拝見させて頂くことが楽しみでしょうがないです。
2022.09.13 21:34
TaroYuiさん 
(No.7)
この投稿は投稿者により削除されました。(2022.09.14 09:54)
2022.09.14 09:54
全くわからないさん  
(No.8)
>AP受かりたいマンさん
返信ありがとうございます。
構造体については完全に理解しており
プログラムとのマッチが頭の中でできていない感じです。
2022.09.14 09:55
boyonboyonさん 
AP シルバーマイスター
(No.9)
>//rに対応するビット列の左からd番目のビット位置のビットの値をbに格納
の処理についてですが、xは、マスクだと考えるとわかりやすいです。

問題に登場するより桁数を多くした方がわかりやすいので、4桁の例を書きます。
対象文字を符号化したものを  1001 とします。
r=9でrに対応するビット列は、1001 になります。
DEPTHは4です。

x←(1を左に(エ)ビットシフトした値)
まず、1をDEPTHに合わせて、0001にします。
最初は、3ビット左にシフトして1000にします。
次に、xと対象文字の1001 の論理積をとります。
1001 and 1000 → 1000 になります。
これを右に3ビットシフトして 0001 → 1 → b にします。

2回目は、2ビット左にシフトして0100にします。
1001 and 0100 → 0000
これを右に2ビットシフトして 0000 → 0 → b にします。

3回目は、1ビット左にシフトして0010にします。
1001 and 0010 → 0000
これを右に1ビットシフトして 0000 → 0 → b にします。

4回目は、0ビット左にシフトして0001にします。
1001 and 0001 → 0001
これを右に0ビットシフトして 0001 → 1 → b にします。

シフトするビット数は、DEPTH-dで求められます。
こうして、ビット列の左からd番目のビット位置のビットの値を取り出していきます。
2022.09.14 11:27
全くわからないさん  
(No.10)
>boyonboyon
具体例まで出していただきとても分かりやすかったです
ありがとうございました。
これからも頑張ります。
2022.09.14 14:44
全くわからないさん  
(No.11)
問題解決をしていただいた
>Rさん、AP受かりたいマンさん、AgentTakaさん,boyonboyonさん
ありがとうございました。
2022.09.14 14:50

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop