HOME»基本情報技術者試験掲示板»平成29年春  午後問13表計算  設問3  f

基本情報技術者試験掲示板


[2838] 平成29年春  午後問13表計算  設問3  f

 初学者さん(No.1) 
ウがダメな理由がいまいち分かりません。
他のスレッドでも同様の質問またそれに回答してくださっているものも読んだのですが、完全には納得できませんでした。

空欄e直後の繰り返しで「相対(B15,pacage_no,m)←相対(B10,0,m)」としているなら、設問fの選択肢ウとエは数値一緒では、、、?と考えてしまいます。

2021.02.12 15:28
いいね正解大卒さん(No.2) 
FE・ブロンズエキスパート
解説の(4)の部分を見てみます。B10、C10、D10の値が更新されながらループしていることがわかります。
これらの値を更新するための変数i、j、kは0から始まってそれぞれB9、C9、D9の値までループしています。i、j、kの値をかたっぱしから網羅的にブワーっと更新し続けることで、梱包するのにちょうどいいX、Y、Zの個数を発見しようって魂胆です。
そのループの過程の中で、空欄eの条件で判定して「あ、この組み合わせがちょうどいいな」ってなったら
相対(B15,package_no,m)←相対(B10,0,m)
とその組み合わせを【相対(B15,package_no,m)に記入する】わけです。そしてその後、相対(B10,0,m)の値は前述の通り更新され続けてしまいます。ここで記入しとかないと、せっかく「あ、ちょうどいいな」って見つけた組み合わせが流れて行ってしまうわけですね。

で、このちょうどいいなって組み合わせを発見したら、その組み合わせの分は梱包する全体の数から引いておきます。梱包指示済みなので。←←←この処理をしているのが空欄fです。
はい、というわけで、ここで相対(B10,0,m)の値を引いてもあまり意味がありませんね。この値は更新され続けてしまっている値であって、「ちょうどいいからこの数で梱包しよう」って値ではないからです。ちょうどいいなって思った数は相対(B15.package_no,m)に入っているのです。ですから、この2箇所に記入されている数は当然違いますし、引くべきは後者の値です。


と、いうのが解説最終行で言われている『「ウ」は、B10〜D10の値を差し引くので誤りです。B10〜D10は作業領域であり、(4)のループ終了後にはX・Y・Zがすべて最大値となっているからです。』の内容になります。
2021.02.13 00:48
いいね正解大卒さん(No.3) 
FE・ブロンズエキスパート
ほーちあり
2021.02.26 23:58
管理人(No.4) 
ご報告ありがとうございます。
当該スレ主は少なくとも2つのスレッドで返信を怠っていたので所定の措置をとらせていただきました。
2021.02.27 11:49

返信投稿用フォーム

スパム防止のために初投稿日から30日経過したスレッドへの書き込みは禁止しています。

© 2010-2022 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop