情報:IT
高校生
解決済み

この問題が全く分からないです🙏
また、図3の(4)(5)の表す意味が分からないです

STEP 3 実戦問題にチャレンジ 9 25120分 得点 目標時間 取り組み日 目標 実戦問題にチャレンジして、 今の実力を 確かめよう 月 日 Aさんは18歳になって選挙権が得られたのを機に、比例代表選挙の当選者を決定する仕組み に興味を持った。そこで各政党に配分する議席数 (当選者数)を決める方法を友人のBさんと ブログラムを用いて検討してみることにした。会話文を読み, 次の各問いに答えよ。 比例代表選挙での各政党の当選者数はどうやって決まるのですか? B:日本では,各政党の得票数を 1, 2, 3, ・・・と, 整数で割った商の大きい順に定められた議席 を配分する方法で決めています。 各政党が表1のとおり得票数を取り, 当選者数が6名であ るとします。そのとき、表1のように ①から⑥の順に議席が各政党に割り当てられます。 ど ういうことかというと,まず得票数を1で割った商を A, B, C,D の4つの党で比較して 最も大きな値をもつB党が①の議席を取り、 次に A,C,D の3つの党の1で割った商と B党の2で割った商を比較して A党が②の議席を取り,さらに・・・というふうにしていくと、 最終的に表1のようにA党が②と⑥の議席, B党が①と④と⑤の議席, D党が③の議席を 取ることになります。 表1 各政党の得票数と整数で割った商 A B党 C D党 得票数 600 960 240 540 1で割った商 ②600 ①.960 240 ③ 540 2で割った ⑥ 300 ④ 480 120 270 3で割った商 200 ⑤320 80 180 4で割った商 150 240 60 135 A: では、このような仕組みで当選者数を決めることができるプログラムを書いてみましょう。 まず,プログラムの中で扱うデータを図1と図2にまとめました。 配列 Tomei には各政党 の党名を,配列 Tokuhyo には各政党の得票数を、配列 Tosen には各政党に配分する議席数 (当選者数)を格納することにします。 Tosen の初期値は全部0にしておきます。 次に、①の議席の政党を決めるプログラムを書きましょう(図3)。 図3のプログラムを実 行したら図4の結果が表示されました。 i Tomei 0 1 2 3 A党 B党 C党 D党 i Tokuhyo 600 0 1 2 3 960 240 540 図1 各政党名が格納されている配列 図2 得票数が格納されている配列
(1) (2) (3) (4) (5) Tomei = ["A党", "B", "C", "p党"] Tokuhyo [600, 960, 240, 540] Tosen [0, 0, 0, 0] max=0 maxi = 0 (6) を0からア まで1ずつ増やしながら繰り返す: | もし max < Tokuhyo[i] ならば: (8) (9) LL.maxi=i (10) Tosen [maxi] = Tosen [maxi] +1 (11) kを0からアまで1ずつ増やしながら繰り返す: 名 (12) L表示する (Tomei [k], "", 図3 ①の議席の政党を決めるプログラム B: Tokuhyo[i] の最も大きい政党, Tokuhyo [ エ] の数値が max に格納され, maxi にエが格納されるので, Tosen [エ] に 「1」が格納されるということですね。 A党:0名 B党:1名 C党: 0名 D党: 0名 図4 ①の議席の政党 結果の表示 問1 空欄 ア ~ エに入れるのに最も適当なものを、次の解答群から一つずつ選べ。 アの解答群 ⑩0 ①1 ②2 3 イの解答群 max= =Tokuhyo[i] ① Tokuhyo[i] = max max= Tosen[i] ③ Tosen[i]=max の解答群 ⑩ Tomei[k] ① Tosen [k] ② Tokuhyo[k] エの解答群 0 ① 1 ② 2 ③ 3 UN

回答

✨ ベストアンサー ✨

この問題は、比例代表制の選挙に関する、
当選の仕組みを扱っていますが、
これは、あまり意識しなくても解けます。

まず、分からない(3),(4)の点ですが、
これは変数の初期化をしています。
登場する変数に値が入っていないと、
プログラムとして不完全だからだと思います。

また、ここで、いちばん大事なのは、
最大値を求めるアルゴリズムです。
最大値max < 値となった場合、
maxに値を入れることで最大値を更新します。
最大値の更新を続けながら、最後まで、
処理が終わったら、maxが最大値として、
求まる。そして、その最大値が最後に
更新された配列の番号iを控えておくことでどの番号の配列なのかを記録しています。

この回答にコメントする
疑問は解決しましたか?