HOME»基本情報技術者試験掲示板»平成29年春期午後問8 誤植?について
投稿する
»[4060] 基本情報技術者平成18年春期 午前問42 投稿数:12
»[4059] アルゴリズムをとけるようにしたいです 投稿数:3
平成29年春期午後問8 誤植?について [4062]
わーくまんさん(No.1)
https://www.fe-siken.com/kakomon/29_haru/pm08.html
33行目の<は≦が正しいのではないでしょうか?
<だと2<2、4<4、8<8となってpDist[]とpRoute[]の更新作業が行われません
pDistとpRouteの更新作業が行われないのでおかしいと思いました。
33行目の<は≦が正しいのではないでしょうか?
<だと2<2、4<4、8<8となってpDist[]とpRoute[]の更新作業が行われません
pDistとpRouteの更新作業が行われないのでおかしいと思いました。
2022.03.28 16:31
FE受かりたいマンさん(No.2)
結論から言えばどちらも正しく機能します。そして誤植ではありません。
恐らく一週目の処理の話の事だと思います。
まず最初にpDistの要素はすべて∞が挿入されます。
最初から2、8、4の情報が入ってるのは配列Distanceの方です。
なので2<∞、8<∞、4<∞となりpDistとpRouteが更新されます。
その後の処理なのですが既にpRouteには1から3の地点の直前の経路情報が入っており
これより短い経路がない限り更新する必要はありません。
ここからは余談です。興味があれば読んでください。
先ほどどちらも正しく機能すると言いましたが、"<" と "≦"では結果が異なります。
どちらも最短経路を表示するのですが、経路情報次第では最短距離は複数存在します。
例えばこの問題の4-6間の距離が8だったとします。
その場合最短ルートは0-1-4-6と0-1-4-2-5-6の2パターンが最短経路となります。
"<" の場合0-1-4-6となるのですが"≦"の場合は0-1-4-2-5-6のルートを通ります。
何故このような差が生まれるかというとスタート地点からの距離が同じ経路情報の場合
"<" だと最初に計算した経路情報が記録され、"≦" だと後から計算された経路情報が
上書きされていくので一番最後に計算されたルートが最短経路となります。
"≦"の場合、アルゴリズムが若干複雑になりますので"<"の方が直感的でわかりやすいですね。
恐らく一週目の処理の話の事だと思います。
まず最初にpDistの要素はすべて∞が挿入されます。
最初から2、8、4の情報が入ってるのは配列Distanceの方です。
なので2<∞、8<∞、4<∞となりpDistとpRouteが更新されます。
その後の処理なのですが既にpRouteには1から3の地点の直前の経路情報が入っており
これより短い経路がない限り更新する必要はありません。
ここからは余談です。興味があれば読んでください。
先ほどどちらも正しく機能すると言いましたが、"<" と "≦"では結果が異なります。
どちらも最短経路を表示するのですが、経路情報次第では最短距離は複数存在します。
例えばこの問題の4-6間の距離が8だったとします。
その場合最短ルートは0-1-4-6と0-1-4-2-5-6の2パターンが最短経路となります。
"<" の場合0-1-4-6となるのですが"≦"の場合は0-1-4-2-5-6のルートを通ります。
何故このような差が生まれるかというとスタート地点からの距離が同じ経路情報の場合
"<" だと最初に計算した経路情報が記録され、"≦" だと後から計算された経路情報が
上書きされていくので一番最後に計算されたルートが最短経路となります。
"≦"の場合、アルゴリズムが若干複雑になりますので"<"の方が直感的でわかりやすいですね。
2022.03.28 18:15
chihiroさん(No.3)
★FE プラチナマイスター
行番号30~38(イ)の説明に、
とあるので、"<"が正しいですね(=はつきません)。最短経路の探索自体は≦でも可能なのですが。
>その距離が既に算出してある pDist[j] よりも短ければ,pDist[j] 及び pRoute[j] を更新する。
とあるので、"<"が正しいですね(=はつきません)。最短経路の探索自体は≦でも可能なのですが。
2022.03.28 19:05
わーくまんさん(No.4)
ありがとうございます
2022.03.29 10:32
その他のスレッド
»[4061] 高校生です 基本情報の価値について 投稿数:3»[4060] 基本情報技術者平成18年春期 午前問42 投稿数:12
»[4059] アルゴリズムをとけるようにしたいです 投稿数:3