- このトピックは空です。
-
投稿者投稿
-
-
nobody
ゲスト解法が全くわからなかったため、解説を読んだのですが、処理の流れの後、orders等の変数を解説すると、いきなり⑪の処理内容が解説されます。なぜこの段階で⑪が設問の式(Lxy)を示していると言えるのか教えていただきたいです。
-
nobody
ゲスト問題22-5のプログラムは、変数が大量にあって、どの変数が問題文の何を表しているのかわからないですよね。
手掛かりとして一番わかりやすいのが、問題文の中央あたりにある Lxy の式です。
この式と⑪の式の形が似ていて、問題文には他に似たような式がないので、⑪が Lxy の式だろうと予想がつきます。
それで、⑪の式に入っている変数が何を表しているのか、問題文の Lxy の式と照らし合わせて考えます。⑪がわかったら、arrayKとかarrayMの意味がはっきりするので、選択肢のaとbが考えやすくなります。
科目Bは100分で20問だから、1問に使える時間を5分とすると、解説に書いてある処理の流れを試験時間中に全部考えるのは不可能なので、長い問題は手掛かりになる部分をつかむのがポイントになると思います。
-
nobody
ゲスト解説ありがとうございます。
式の形が似ていることから、設問の式と同一であると見当をつけることが大事なのですね。順番どおり理解をしようとする必要がないというのが目からうろこでした。科目Bについて、解き方に苦戦していたのでいただいたアドバイスを元に、勉強したいと思います。
改めて回答ありがとうございました。 -
nobody
ゲスト[2025年3月18日 12:48 AM]さんもおっしゃってますが、
平均5分という制限時間の中で、これだけのアルゴを読み解くのはほぼ不可能です。
他の参考書でも、このような問題では、
与えられた数式(以下、公式)がヒントとなるため、この公式を念頭に確認してみようと思います。・orderは、注文データリストを配列で表すしたもの
・allItemsは、全商品
・otherItemsは、全商品から引数itemを除いた商品
・引数item
これら4つの変数は変数名からイメージしやすいでしょう▼最初のfor-ifについて
6件の注文数を1つずつ格納しつつ、
itemと等しければitemCountを加算していることから、
公式の分母のKxまたはKyであることが予想される。
/*実数として計算する*/の注釈部分が公式であることは想像できる。
以上から、この部分の処理は、公式Kxの処理をしていると判断できる。▼次のfor-if-ifについて
forでは、otherItemsを1つずつ格納して、以降のifで判定させている。
2つのif条件から、その注文にitemとotherItem(※)の両方が該当すれば、空欄aに加算している。
以上から、公式のMxyであると判断でき、注釈の公式arrayM[i]だと判断できる。
そして、空欄bは、otherItemの該当数を加算していることから、
公式のKyであると判断でき、注釈の公式arrayK[i]だと判断できる。
(※)変数名は、otherItemsだが、otherItemsを1つずつ検証しているため、敢えてotherItemとしています。▼注釈の公式について
以上から、残る空欄cは、公式の全注文数を差していることは明白なので、
注文リストである大域変数ordersの要素数だと判断できる。
-
-
投稿者投稿