過去ログ

uchinyan
はい、こんにちは。(ちょっと修正しました。)
今回は比較的容易でしたが、算数の解法に少し手こずりました。
一応、算数っぽい解法と、数学っぽい解法を、書いておきます。しかし、まだ、算数としてはこなれてないですね (^^;

(解法1)
題意から、パーティに集まった人の人数は、5の倍数と7の倍数を加えて表せない最大の数を求めていることになります。
そこで、まず、条件「5の倍数と7の倍数を加えて表せる数」について考えて見ます。
一般に、数を 7 で割ると 0 〜 6 の余りが生じますが、今は、5の倍数と7の倍数を加えて表せる数を考えるので、
余りを除いた7の倍数の一部を等しい「5の倍数とその余り」に置き換えて、7 で割った余り 0 〜 6 と合わせて5の倍数になればいいわけです。
7 = 5 * 1 + 2 なので、この余り 2 がポイントになります。この 2 と 7 で割った余り 0 〜 6 とを組み合わせて、5の倍数を作ります。
実際に調べると、
0)7 で割った余りが 0 の場合:7の倍数なので、5の倍数は 0 として、常に条件を満たします。
1)7 で割った余りが 1 の場合:2 * 2 + 1 = 5 より、二つの 7 を 5+2 に置き換えると5の倍数が得られて、条件を満たします。
この場合の最小の数は、7 * 2 + 1 = 15 です。つまりこれ以上の1)型の数は、この操作で必ず、条件を満たします。
2)7 で割った余りが 2 の場合:2 * 4 + 2 = 10 より、四つの 7 を 5+2 に置き換えると5の倍数が得られて、条件を満たします。
この場合の最小の数は、7 * 4 + 2 = 30 です。つまりこれ以上の2)型の数は、この操作で必ず、条件を満たします。
3)7 で割った余りが 3 の場合:2 * 1 + 3 = 5 より、一つの 7 を 5+2 に置き換えると5の倍数が得られて、条件を満たします。
この場合の最小の数は、7 * 1 + 3 = 10 です。つまりこれ以上の3)型の数は、この操作で必ず、条件を満たします。
4)7 で割った余りが 4 の場合:2 * 3 + 4 = 10 より、三つの 7 を 5+2 に置き換えると5の倍数が得られて、条件を満たします。
この場合の最小の数は、7 * 3 + 4 = 25 です。つまりこれ以上の4)型の数は、この操作で必ず、条件を満たします。
5)7 で割った余りが 5 の場合:明らかに、7の倍数と5の倍数との和になっているので、常に条件を満たします。
6)7 で割った余りが 6 の場合:6 = 5 * 1 + 1 なので、1)型に帰着し、1)型と +5 だけズレます。
この場合の最小の数は、1)型の最小 15 に 5 を加えた 20 です。つまりこれ以上の6)型の数は、この操作で必ず、条件を満たします。
以上のことから、条件を満たさない、「5の倍数と7の倍数を加えて表せない数」は、
0)型:なし。
1)型:15 - 7 = 8 以下。
2)型:30 - 7 = 23 以下。
3)型:10 - 7 = 3 以下。
4)型:25 - 7 = 18 以下。
5)型:なし。
6)型:20 - 7 = 13 以下。
となり、今回の問題の題意を満たす数は、最大で 23 となり、答えは 23 人になります。

(解法2)
要するに、n を自然数としたときに、5x + 7y = n が 0 以上の整数解 x, y をもたないような最大の n を求めることになります。
よく知られたように、この解は、t を整数として、x = 3n-7t, y = -2n+5t と書けます。
したがって、これらの x, y が 0 以上の整数にならない、
つまり、2n/5 <= t <= 3n/7 となる整数 t が存在しない最大の n を求めればいいわけです。
3n/7 - 2n/5 = n/35 なので、明らかに、n >= 35 の場合には、整数の t が少なくとも一つあります。
n < 34 では、0 < 3n/7 - 2n/5 < 1 なので、
3n/7 の整数部分 [3n/7] が 2n/5 の整数部分 [2n/5] より大きくないと t は存在しません。
n を 34 から一つずつ小さくして調べていくと、
[3n/7] > [2n/5] for n = 34, 33, ..., 24, [3n/7] = [2n/5] = 9 for n = 23, ...
つまり、n = 23 で、初めて解がなくなります。したがって、最大の人数は、23 人になります。

ネコの住む家   3月17日(木) 16:59:57   MAIL:uchi@sco.bekkoame.ne.jp   24735

過去問題一覧へ戻る