平成27年春期問8アルゴリズム
某さん
(No.1)
トレースしていたのですが、間違い的なの見つけました。
タイトルのアルゴリズムに記載されているプログラムの最後の方の処理、
変数TopとLastに値を入れる箇所があるのですが、
代入している値がTopとLastで逆な気がします。
私のトレースが間違えているのでしょうか。
もし私の間違いであれば、簡単でよろしいので解説をお願いしたいです。
タイトルのアルゴリズムに記載されているプログラムの最後の方の処理、
変数TopとLastに値を入れる箇所があるのですが、
代入している値がTopとLastで逆な気がします。
私のトレースが間違えているのでしょうか。
もし私の間違いであれば、簡単でよろしいので解説をお願いしたいです。
2016.10.10 18:03
某さん
(No.2)
代入している値が逆というよりは
ループ変数のiとjの使用が逆なのではないかと思います。
よろしくお願いいたします。
ループ変数のiとjの使用が逆なのではないかと思います。
よろしくお願いいたします。
2016.10.10 18:05
迷子さん
(No.3)
実際にトレースして確認してみました。
題意通りの結果になりましたので、特にプログラム部分の間違いはないかと思います。
某さんのトレース方法はわかりませんが、仮に下部の処理でiとjが逆だった場合は、
TopとLastに代入される値が変わります。
すると5行目の繰り返し処理の判定結果も変わり、結果としてX[k]の値が題意(何番目に小さい値)を
満たさなくなってしまいます。
再度確認してみてください。
ざっくりですが参考になれば幸いです。
題意通りの結果になりましたので、特にプログラム部分の間違いはないかと思います。
某さんのトレース方法はわかりませんが、仮に下部の処理でiとjが逆だった場合は、
TopとLastに代入される値が変わります。
すると5行目の繰り返し処理の判定結果も変わり、結果としてX[k]の値が題意(何番目に小さい値)を
満たさなくなってしまいます。
再度確認してみてください。
ざっくりですが参考になれば幸いです。
2016.10.10 20:02
よしさん
(No.4)
私も初め解いたときひっかかりましたが、何百人もの専門家が作っている問題なので、基本的に間違えということはないのだと思っています。
iは左端、jは右端を示しています。例えばLastが7から4になるということは、
右端が4になるので、5,6,7の要素が消されます。
また、Top、Lastの値を再設定するのは、i≧jを満たすとき、つまりTopから+1ずつ変化してきたiがLastから-1ずつ変化してきたjを超えるか同じになるときです。
iは左端、jは右端を示しています。例えばLastが7から4になるということは、
右端が4になるので、5,6,7の要素が消されます。
また、Top、Lastの値を再設定するのは、i≧jを満たすとき、つまりTopから+1ずつ変化してきたiがLastから-1ずつ変化してきたjを超えるか同じになるときです。
2016.10.10 21:25
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告