スキップしてメイン コンテンツに移動

Schur Number

Youtube の Numberphile チャンネルで最近出た Schur Number の動画を見た、 そこでのシューア数の定義は OEIS の "version 1" の方

Smallest number such that for any n-coloring of the integers 1, ..., a(n) no color is sum-free, that is, some color contains a triple x + y = z.

だったが、"version 2"

Largest number such that there is an n-coloring of the integers 1, ..., a(n) such that each color is sum-free, that is, no color contains a triple x + y = z.

の方が解り易いからこちらで話を進める。version 2 の方が 1 小さい値になるというだけの違いがある。

動画の内容は \(a(n) = 160\) になる証明が2ペタバイトのデータ量で凄い、みたいなこと。 結局、全ての n-coloring を確認するしかないとか何とか。

ここではそういう難しい部分の話はせずに、1, 4, 13, 44, 160 という増え方が大体 3 倍を超えるぐらいというのを納得する議論をしてみたい。 よりはっきり言うと、1, 4, 13 と増える \(a_{n+1} = 3a_n + 1\) という数列が下限になることを示す。 一つ注意を述べると、n-coloring を考えるというより \(\{1,\ldots,k\}\) の和抜き(sum-free)集合による被覆を考えれば良い。被覆ができれば彩色を作れる(自由度を失うだけ)ので。

そういうわけで \(\{1\}\) の被覆を考え始めるわけだが、そちらも \(\{1\}\) で良い。 次に \(\{1, 2\}\) の被覆を考えるが \(1+1=2\) なので \(\{1,2\}\) は和抜きではない。よって \(\{1, 2\}\) の和抜き集合による被覆は \(\{1\},\{2\}\) の2要素が必要になる。 次に \(\{1, 2, 3\}\) は、たとえば \(\{1, 3\}\) と \(\{2, 3\}\) の2要素で覆える。 3の重複を無くすと2種類の2彩色が与えられる。 \(\{1, 2, 3, 4\}\) は、\(\{1, 4\}\) と \(\{2, 3\}\) の2要素で覆える。 \(1+3=4\) なので前者に 3 を増やすことはできない。\(2+2=4\) なので後者に 4 を増やすこともできない。 ということで、次に 5 を増やせるかを考えるが、\(1+4=2+3=5\) なのでどちらにも 5 を入れることはできない。 つまり \(a(2)=4\) が確定する。

\(a_1=1\), \(a_2 = 4 = 3a_1 + 1\) と進む様子をもう少し見直してみる。 \(A_{1,1}=\{1\}\) とする。\(b_2=a_2 + 1=5\) とおいて、\(A'_{1,1} = (b_2 - A_{1,1}) = \{5 - 1\} = \{4\}\) とする。 これを使って \(A_{2,1}=A_{1,1} \cup A'_{1,1} = \{1\}\cup\{4\}\) と定める。 \(A_{2,2}=\{1,\ldots,4\} \setminus A_{2,1} = \{2,3\}\) とおくと、\(\{1,\ldots,4\}\) が \(A_{2,1}\) と \(A_{2,2}\) で被覆される。

次に \(a_3 = 3a_2 + 1 = 13\) さらに \(b_3 = a_3 + 1 = 14\) とおく。 \(A'_{2,1} = (b_3 - A_{2,1}) = \{14 - 1, 14 - 4\} = \{10, 13\}\) とする。 同様に、\(A'_{2,2} = b_3 - A_{2,2} = \{14 - 2, 14 - 3\} = \{11, 12\}\) とする。 これらを使って \(A_{3,1} = A_{2,1}\cup A'_{2,1} = \{1, 4, 10, 13\}\) および \(A_{3,2} = A_{2,2} \cup A'_{2,2} = \{2, 3, 11, 12\}\) を決める。 最後に \(A_{3,3} = \{1,\ldots,13\} \setminus \bigcup_{i=1}^{2} A_{3,i}\) とすると、 \(\{1,\ldots,13\}\) の被覆 \(A_{3,1}, A_{3,2}, A_{3,3}\) が得られる。

以下同様に \(a_k = 3 a_{k-1} + 1\) のとき、\(b_k = a_k + 1\) とおいて、 \(i=1,\ldots,k-1\) に対し \(A'_{k-1,i} = b_k - A_{k-1,i}\) を使って \(A_{k,i}=A_{k-1,i}\cup A'_{k-1,i}\) を決める。 最後に \(A_{k,k} = \{1,\ldots,a_k\} \setminus \bigcup_{i=1}^{k-1} A_{k,i}\) と決めると、 \(\{1,\ldots,a_k\}\) の被覆 \(A_{k,1},\ldots,A_{k,k}\) が得られる。

\(A_{k,i}\) が和抜き集合であるのは作り方からほぼ自明だと思うが、\(A_{k,k}\) だけ少し見ておく。 結局 \(a_{k-1}\) 以下と \(a_k - a_{k-1} + 1\) 以上を取り除いた部分だから \(A_{k,k} = \{a_{k-1} + 1,\ldots,2a_{k-1} + 1\}\) であり、最小の元 \(a_{k-1}+1\) を2つ足すと最大元 \(2a_{k-1} + 1\) を越えてしまうので和抜き集合である。

ということで、このパターンを続けて行くと \(n\) 個の和抜き集合で \(\{1,\ldots,a_n\}\) が被覆できる。 \(a_n\) は \(a_{n+1} = 3a_n + 1\) という漸化式を満たす。つまり、元の問題に戻すと、\(a_n\) がシューア数の下限であり、3倍ぐらいずつ伸びていくことが見て取れる。 逆に言うと、3倍を越えて伸びる部分が正確な値を求める上で工夫の必要な部分となるわけである。

このブログの人気の投稿

「函数」音訳説について探してみる

Twitter に書こうかと思ったが、ちょっと長くなるのでこっちに書くことにする。 「函数」が音訳というデマと、本当の語源 というブログ記事について ツイートされてるの を見た。 詳しい内容はリンクを辿って読んでみて欲しい。 その記事中の「函数」音訳説という部分で、引用されているものが意外と新しい1980年代以降のものなので、さすがにもっと古いだろう、と探してみた。 1. 武部良明「漢字の用法」(1976) このほか武部良明『漢字の用法』(角川書店1976)にも同様の記述があるという(未確認)。 とあって、たまたま同書(三版)を持っているので調べてみた。 「関数」ではなく「関・函」の項にあった。 「函」は「いれる」意味。 したがって、「函数」という漢字の組み合わせからは、「対応して定まる数」という意味は出てこない。 「函数」については function という原語の音 fun を、「函」の音カン(現代中国語 han)で写したものとされている。 これに対し現代表記の「関数」は、全体の意味を「かかりあう数」と考え、「函」の部分を、同音で「かかりあう」意味の「関」に書き換えたものである。 2. 遠山啓「関数を考える」(1972) 近所の図書館で見つけた。 会話体の文章の中で、先生役が言っている。 はっきりはわからないが, 中国語の発音では function と似ていて, しかも意味も近いらしいのだ. 3. 遠山啓「数学は変貌する」(1971) 2012年にちくま学芸文庫から出た「現代数学入門」所収。 「関数を考える」が中学生ぐらいを対象にしたシリーズの一冊なので、そこでいきなり初披露ということは無いだろうと見当をつけて遡って探した。 機能とは簡単にいうと働きです。 ライプニッツが初めてファンクションという言葉を使った. ライプニッツはドイツ人ですが, ドイツ語は当時はいなかの言葉みたいで, フランスが文化の中心であったから, フランス語で書いてありますので, フォンクション (fonction) です. もとは日本では「函数」, あとになって「関数」と改めたのです. なぜこんな函の数という妙な言葉を使ったか, これは中国からきた字です. 中国人は各国語を音まで似せて訳すことがうまい. フォンクションは中国語で函数を中国読みしますと非常に似ているのだそ...

「函数」音訳説について探してみる (辞書編)

前回 は数学の本の中で音訳説に言及しているものを探したが、今回は辞書。 Google Books で検索したら角川新字源が引っかかったので辞書も見た方が良いのかな、というぐらいのことだったのだが、古い辞書を見るのは意外に難しい。 角川書店 武部良昭 「漢字の用法」(1976)が前回見つけた辞典類における一番古い言及だった。 で、新字源。 実物は今のところ手に取れていないが、 Google Books を信じれば、初版(1973)に 函数の函は function の fun の発音を表わす。今は関数と書く。 との記述があるらしい。 (疑っているのは版の扱いで、本当に初版のスキャンなのか、初版が1973年であるところの「新字源」の後の版のスキャンなのかという部分。) 追記1(2018-09-23): 改訂版(1994)を見ることができた。上の引用と同じ文言だった。 そして、初版は1968年。 「1973年」の出所が知りたくて、Google Books で奥付を探してみた(判明した初版出版年の「昭和四十三年」で書籍内検索した)のだが、 出てきたのは 昭和五十三年一月二十日一二五版発行 と1978年を示唆する結果だった。 版と数えてはいるが要は刷のことだろう。 ということで若干引っかかりは感じるが、つまり、改訂版以前の細かい修正の一部として取り入れられた可能性は残らなくもないが、 現時点で発見された一番古い音訳説が「新字源」初版(1968)と言って大丈夫そうだ。 追記2(2018-09-23): 「角川国語大辞典」(1982)にも表記に関する注意として次のように書かれている。 函数は function の音訳。 三省堂 「新明解国語辞典」第六版(2005)では函数の見出しで最初に次のような説明が入る。 function の、中国での音訳。 「函」は「独立変数を含む」という意味も兼ねる 第四版(1989)でも同じ内容を確認した。 初版まで遡れれば1972年となるが、第三版以前については未調査。 一方「三省堂国語辞典」第七版(2013)では語源に言及していなかった。 「大辞林」第三版(2006)も「例解新国語辞典」第二版(1990)も言及無し。 (追記 2018-09-23: 「広辞林」第五版(1973)も言及無し) 岩波書店 意外にも音訳説を押し出し...

「函数」音訳説について探してみる (まとめ)

これは 「函数」音訳説について探してみる 「函数」音訳説について探してみる (辞書編) の続きになるので、まずはそちらを読んでもらえると解りやすいと思う。 ざっくり言うと、函数は function の中国における音訳、という俗説( 「函数」が音訳というデマと、本当の語源 参照)の起源を求めて、できるだけ古い言及を探そうというクエストの記録。 先に結論から言うと、遠山啓「キュート数学I」(1967)ついで「角川新字源」(1968)という1960年代末発行の二つが見つかった。 遠山啓 既に「関数を考える」(1972)と「数学は変貌する」(1971)は見つけていたが、さらに古いものが見つかった。 「キュート数学I」(1967)だ。 元は三省堂から出版されたもののよう(実物は見ていない)だが、二度形態を変えて再度刊行されている。 一つめが太郎次郎社の遠山啓著作集シリーズの「数学教育論11 数楽への招待I」(1981)、 もう一つがソフトバンククリエイティブの「基礎からわかる数学入門」(2013)だ。 先生●それには歴史的な事情があるのだ. ヨーロッパの数学が中国に伝えられたとき, function は「函数」と訳された. 中国語ではやはり function の意味をもっているが, 同時に音も似ているらしい. それがそのまま日本に伝えられ, 「函数」となり, 「函」が当用漢字にないので, それがさらに「関数」になったわけだ. 引用は「基礎からわかる数学入門」によるが、「数楽への招待I」でも約物の違いぐらいで内容は変わらない。 角川新字源 既に辞書編で書いたように、新字源は1968年の初版から音訳説を採っていると思われる。 若干の歯切れの悪さは、Google Books にある1978年発行のもののスキャンより古い時代のものを当たった訳ではないので、 細かい修正の一部として書き直された可能性が捨てきれないことによる。 (スキャンでない現物は近所の古本屋で1989年発行のものだけは見ることができ、1978年のものと同じ文言だった。) その他 「広辞苑」は辞書編で第五版(1999)まで遡ったが、その後第四版(1991)も「函数」の項で音訳説を紹介しつつ「関数」に飛ばす、という同じ内容であることを確認した。 期待して第三版(1983)を調べたら、こちらは音訳説無し...