平成29年春期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
勉強中さん  
(No.1)
このアルゴリズムなんですけど
問題と同じ条件の場合fixed[2]が一生falseになって
無限に続くことになりませんか?
2022.11.02 10:17
nsさん 
FE シルバーマイスター
(No.2)
プログラムの終了までトレースして、pRoute、pDist、pFixedの内容を書き出すと以下のようになりました。これをご自身のトレースと見比べてみてください。
※pRouteは設問では初期値をセットしていませんが、とりあえず-1として書き出しています。
※各値はループの最初(12行目と13行目の間)の状態です。
ループ8周目にpFixedが全てtrueになっているため、21行目のbreakでループを抜けます。
地点0から地点6までは0→1→4→2→5→6と進むのが最短で、その距離は13であることがわかりますね。

1周目
pRoute = {-1,-1,-1,-1,-1,-1,-1}
pDist = {0,∞,∞,∞,∞,∞,∞}
pFixed = {f,f,f,f,f,f,f}

2周目
pRoute = {-1,0,0,0,-1,-1,-1}
pDist = {0,2,8,4,∞,∞,∞}
pFixed = {t,f,f,f,f,f,f}

3周目
pRoute = {-1,0,0,0,1,-1,-1}
pDist = {0,2,8,4,5,∞,∞}
pFixed = {t,t,f,f,f,f,f}

4周目
pRoute = {-1,0,0,0,1,3,-1}
pDist = {0,2,8,4,5,12,∞}
pFixed = {t,t,f,t,f,f,f}

5周目
pRoute = {-1,0,4,0,1,3,4}
pDist = {0,2,7,4,5,12,14}
pFixed = {t,t,f,t,t,f,f}

6周目
pRoute = {-1,0,4,0,1,2,4}
pDist = {0,2,7,4,5,10,14}
pFixed = {t,t,t,t,t,f,f}

7周目
pRoute = {-1,0,4,0,1,2,5}
pDist = {0,2,7,4,5,10,13}
pFixed = {t,t,t,t,t,t,f}

8周目
pRoute = {-1,0,4,0,1,2,5}
pDist = {0,2,7,4,5,10,13}
pFixed = {t,t,t,t,t,t,t}
2022.11.03 20:32

返信投稿用フォーム

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

その他のスレッド


Pagetop