平成30年秋期午後問3

30さん  
(No.1)
お世話になっております.
平成30年秋季午後問3の(1)について教えていただきたいのですが,
本文の[ウェーブレット木構築]の(3)に「それぞれの文字を順番に並べて新たな文字列を作成する」とありますが,設問1の解答では順番に並べるという操作が行われていないように感じます.
本問題において順番に並べるというのがどのような処理を表しているのか,また,問題文からなぜ並び替える必要がないと判断したのか (出来るのか) 教えていただけないでしょうか

https://www.ap-siken.com/kakomon/30_aki/pm03.html
2024.09.18 23:49
boyonboyonさん 
AP シルバーマイスター
(No.2)
順番というのは、元の文字列の左から取り出した順のことです。
元が、CTCGAGAGTAなので、
C*C*A*A**A  先頭ビットが0
*T*G*G*GT*  先頭ビットが1
と見れば、よろしいかと思います。
2024.09.19 00:29
30さん  
(No.3)
ありがとうございます.
技術的な問題でなく読解力の問題になってしまっていて大変恐縮なのですが,
本文の
「ビットの値が0の場合とビットの値が1の場合とで分けて取り出し,それぞれの文字を順番に並べて新たな文字列を作成する」
というのが,ビットの値で分けて取り出す + 文字を順番に並べる という2つの操作に感じてしまったのですよね.元の文字列の順番に並べるというのはビットの値で分けて取り出す操作の時点で達成されるはずなので,文字を昇順または降順に並べるのではないかと.

このような勘違いはどのように避けるべきでしょうか?
また,今回の勘違いは本文中のどの部分で気づくことが出来るでしょうか?
ご教示いただけますと幸いです。
2024.09.19 00:56
boyonboyonさん 
AP シルバーマイスター
(No.4)
本文の(2)、
>「文字の並びと同じ順番」で並べてビット列として構成したものをキー値としてノードに登録する。
また(3)では、
>キー値のビット列を左から1ビットずつ「順番」に見ていき、・・・・それぞれの文字を「順番」に並べて新たな文字列を作成する。
このあたりを読むとソートは出てこないと思われます。
2024.09.19 18:38
30さん  
(No.5)
boyonboyonさん,答えにくいような質問をしてしまい申し訳ございません.
ありがとうございます.
ご指摘いただいた点に注目すると「たしかにそうかぁ」とも思うのですが,本番で似たような問題が来たら設問の内容を正確にとらえられる自信がないですね

プログラミングで点数を稼ごうと思っていたのですが,この年の問題で一気に不安になりました.
マズいと思ったら捨てて別の問題に切り替えられるように準備していければと思います.

ありがとうございました.
2024.09.19 21:15

返信投稿用フォーム

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

その他のスレッド


Pagetop