アルゴリズムとプログラミング
アルゴリズムとプログラミングの「待ち行列モデル」に関する問題です。
問1
図1より、工芸品4は部員2が2日目から1日間製作することが読み取れます。
工芸品4までが割り当てられた段階で、最も早く空きになる部員は、部員2です。
工芸品5は、部員2が3日目から5日目までの3日間製作します。
解答 ア② イ② ウ② エ③ オ⑤
問2
部員3は4日目に空きになるため、Akibi[3]=4となります。
図4のプログラムでは、分岐構造を使って、最も早く空きになる部員を考えます。
初期値であるtantou=1より、Akibi[tantou]よりAkibi[buin]の値が小さければ、tantouはbuinを代入します。
buin=2のときAkibi[2]>Akibi[1]より(06)行が実行されます。
buin=3のときAkibi[3]<Akibi[2]より(06)行が実行されません。
buin=4のときAkibi[4]<Akibi[2]より(06)行が実行されません。
buin=5のときAkibi[5]<Akibi[2]より(06)行が実行されません。
よって、(06)行は、1回行われます。
解答 カ④ キ① ク①
問3
プログラムコードは、以下のようになります。
Nissu = [4,1,3,1,3,4,2,4,3]
kougeihinsu=9
akibi=[1,1,1]
buinsu=3
kougeihinを1からkougeihinsuまで1ずつ増やしながら繰り返す:
tantou=1
buinを2からbuinsuまで1ずつ増やしながら繰り返す:
もしAkibi[buin]>Akibi[tantou]ならば:
tantou=buin
表示する(”工芸品”,kougeihin,”…”,”部員”,tantou,”:”,Akibi[tantou],”日目~”,akibi[tantou]+Nissu[kougeihin]-1,”日目”)
Akibi[tantou]=Akibi[tantou]+Nissu[kougeihin]
解答 ケ① コ④ サ② シ⓪
コメント