pc ( No.4 ) |
- 日時: 2009/07/23 12:44
- 名前: nn)/
- (1) m = 6 で,以下のようにうまく選べます.
● 1344 ● 2455 ○ 35E ○ 4E ○ 511E ○ E ● 122 ● 233
m = 20 でも ○ だけを選べます.
● 1975296284949 ○ 20863S ○ 319741739505S ○ 42S ○ 53185284S ● 642963951616 ● 753074062727 ● 864185173838
他に,m = 30, 36, 50, 55, 61, 71, 85, 91, ... でも可能です. この問題をとり上げていた,ある本では m = 30 になっていました.
(2) 選ばれると一人ずつ抜けていきますから,形式的には,選ばれた人の一人 前を順に選ぶことに相当する m = 0 が答えになっています.
そして,最初は 2n 人でできていた輪が,最後の一人を選ぶ直前には n+1 人の輪 になっていることに着目しますと,m = LCM(2n, 2n-1, ..., n+1) またはその正整 数倍とすれば,何人の輪であろうと,周囲を回転して実質 m = 0 の位置に来るよ うになります.なお,LCM は最小公倍数のことです.
あとは,最後の ○ の次の ● の先頭から数え始めれば良い訳です.なお,最初の 数え始め場所をうまく選べば, m = LCM(2n-1, 2n-2, ..., n+1) と m を少し小さ くすることができます.
また,各回で数え始めの人を選ぶことに相当する形式解 m = 1 を使って, m = LCM(2n, 2n-1, ..., n+1) + 1, m = LCM(2n-1, 2n-2, ..., n+1) + 1 とするのも正しい答です.
(おまけ) (2) の答えは,無数にある m の存在を示すため,そのうちのひとつを 具体的に挙げたもので,もちろん,(n=2 以外) 最小値ではありません.
どのような値が m の最小値になるかは分かりませんでしたので,簡単なプログラ ムを書いて n = 2, 3, ..., 10 に対する m の値を求めました.以下に,小さい順に 6 個ずつ示しておきます.
2: 3, 4, 6, 7, 9, 10 (全て 3 の倍数または 3 で割って 1 余る数です) 3: 5, 9, 12, 16, 20, 21 (以降は,これらに 20 の倍数を足した数です) 4: 6, 20, 30, 36, 50, 55 (LCM(7, 6, 5) +1= 211 までに 4! = 24 個) 5: 30, 72, 120, 127, 162, 169 6: 322, 351, 378, 441, 497, 504 7: 200, 649, 712, 729, 792, 1000 8: 1080, 1441, 2341, 2629, 2772, 3070 9: 1740, 4861, 4930, 10320, 15181, 15301 10: 2772, 2927, 20593, 25454, 41328, 42769
どうやら,0, 1 を含めた M(n) = LCM(2n-1, 2n-2, ..., n+1) 未満の m の総数が, n 人を選び出す順番の総数(順列の数) n! に等しく,M(n) 以上の m はその n! 個 のどれかを使って m = m' + k M(n) (0 ≦ m' < M(n), k は正整数) と書けるよう で,これくらいは背理法を用いて証明できそう(n! より多くても少なくても矛盾が 生じることを示す)です.
しかし,1より大きい最小の m がどのような n の関数として書けるか (つまりどう いう選出順に対応するか) は,ヒマでヒマで仕方ないとき (そんな時が来るのでしょ うか?) のためにとっておくことにします.やってみたら,案外簡単かも知れません が,どうでしょうか ……
|
|