HOME»基本情報技術者試験掲示板»平成29年春期午後問8
投稿する
平成29年春期午後問8 [4550]
勉強中さん(No.1)
このアルゴリズムなんですけど
問題と同じ条件の場合fixed[2]が一生falseになって
無限に続くことになりませんか?
問題と同じ条件の場合fixed[2]が一生falseになって
無限に続くことになりませんか?
2022.11.02 10:17
nsさん(No.2)
★FE シルバーマイスター
プログラムの終了までトレースして、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}
※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