■
■結城浩さんの無理数クイズ
無理数クイズに挑戦
昨夜寝る前に4/13付けのベータグループのnaka64さんの日記を読んで 結城浩さんが4/13の日記で無理数クイズを出題していることを知りました。
クイズ「実数x, yが x^2 + y^2 = 3 という式を満たすならば、xとyの少なくとも一方は無理数である」この命題が真なら証明し、偽なら反例を示してください。
激しく面白そうだったのでチャレンジ。naka64さんの証明とは異なり、素朴な(?)方法で証明を考えてみました。寝床についてから目を閉じても頭がくるくるまわって納得するまで寝つけませんでした(汗)。背理法とフェルマーの小定理をわざわざ使っていることが本当に素朴なのかは疑問。エレファントな証明であってエレガントではないような(汗)。ぜんぜん検証していないので間違っているかも。嘘ついてたらごめんなさい。以下に私の証明を。
x^2 + y^2 = 3 となる有理数x,yはあるか? まず、3の平方根が無理数であることを既知とします。 その上で、x > 0 , y > 0 と制限しても一般性を 失わないことは明らか。 x=(a/b) , y=(c/d) という既約分数に置き換える。但し、b,d は共に0ではない。 (a/b)^2 + (c/d)^2 = 3 となる 自然数、a,b,c,d の組が存在するかという問題と同等。 すなわち (ad)^2 + (cb)^2 = 3(bd)^2 …(1) となる自然数a,b,c,d の組が存在するかという問題と同等。 最初に、a は 3 の倍数ではありえないこと、 c もまた 3 の倍数ではありえないことを示しておく。 仮にa,c が共に3の倍数であるとする。 既約性から、b,dは共に3の倍数ではない。 すると、式(1)の右辺は3の素因数を高々1個しか持っていない。 ところが、左辺は9の倍数となってしまう。これではまずいので a,cが共に3の倍数であるケースはありえないと結論できる。 次にaが3の倍数でcが3の倍数ではないケースを考える。 既約性によりbは3の倍数ではない。式(1)を変形をしてみると (cb)^2 = 3(bd)^2 - (ad)^2 となるが、左辺は3の倍数ではないのに右辺が3の倍数となっている。 これではまずいので aが3の倍数、cが3の倍数ではないケースはありえないと結論できる。 同様にして aが3の倍数ではなく、cが3の倍数であるケースはありえないと結論できる。 以上で、a は 3 の倍数ではありえないこと、 c もまた 3 の倍数ではありえないことが示された。 以後、このことを念頭におく。 (ad)^2 + (cb)^2 = 3(bd)^2 となる自然数a,b,c,d の組が存在するかどうか 調べているのであった。 続いて、b は 3 の倍数ではありえないこと、 d もまた 3 の倍数ではありえないことを示しておく。 まず、bが3の倍数かつdが3の倍数であることがありうるかを調べる。 この場合 (ad)^2 + (cb)^2 = 3(bd)^2 …(1) の左辺は3の素因数が偶数個、右辺は奇数個となってしまう。 よってb,dが共に3の倍数であることはありえない。 bが3の倍数、dは3の倍数ではないケースを調べる。 (ad)^2 = 3(bd)^2 - (cb)^2 であるが、左辺は3の倍数ではないのに対し、右辺は3の倍数となる。 よって、bが3の倍数、dは3の倍数ではないケースはありえない。 同様にして、 bが3の倍数ではなく、dが3の倍数であるケースもまたありえない。 以上で、bが3の倍数ではありえないこと、 dもまた3の倍数ではありえないことが示された。 ここまでをふりかえると、 (ad)^2 + (cb)^2 = 3(bd)^2 となる自然数a,b,c,d の組が存在するならば a,b,c,d は全て3の倍数ではないことが要求されることが 示されている。 ここで、m=(ad), n=(cb), s=(bd) と置き換える。 m,n,s は全て3の倍数ではないことが既に示されていることに注意。 m^2 + n^2 = 3s^2 …(2) フェルマーの小定理により、 m^3 - m は 3 で割り切れる。 したがって、 m(m^2 - 1)もまた、3で割り切れる。 ここで、m が 3の倍数でないことから、 (m^2 - 1) は 3 の倍数でなければならない。 同様にして、 (n^2 - 1) は 3 の倍数でなければならない。 ゆえに、 (m^2 - 1) + (n^2 - 1) は 3の倍数である。 すなわち、 m^2 + n^2 は 3で割ると 2 余る数である。 これは式(2)と矛盾する。 x^2 + y^2 = 3 となる有理数x,yがあると仮定すると 以上のような矛盾が出てくるので背理法により x^2 + y^2 = 3 となる有理数x,yは存在しないことが証明された。 ※フェルマーの小定理 p を素数とすると,任意の整数 a に対して, a^p - a は p で割り切れる。
この種の整数論っぽいことは馴染みがありませんがチャレンジしてみました。楽しかったです。
追記:ご飯食べてたら気がついた。フェルマーの小定理は不要だった。
(3f + 1)^2 = 9f^2 + 6f + 1 (3f + 2)^2 = 9f^2 + 12f + 3 + 1
まぁこれなら中学生でも追えるなぁ
4/15追記:もっとシンプルに
結城さんの無理数クイズ解答編を睨んでいたら、私の解答と結城さんの解答を混ぜて一工夫すれば、もっとシンプルな証明が出てくることがわかりました。以下に。
まず、3の平方根が無理数であることを既知とします。 その上で、x > 0 , y > 0 と制限しても一般性を 失わないことは明らか。 x^2 + y^2 = 3 となる有理数x,y が存在すると仮定する。 x = a/b , y = m/n (a,b,m,n は自然数)とすると (a/b)^2 + (m/n)^2 = 3 両辺に (bn)^2 を乗じて (an)^2 + (bm)^2 = 3(bn)^2 …(1) 両辺から 2 を減じて左辺を因数分解すると、 (an)^2 - 1 + (bm)^2 - 1 = 3(bn)^2 - 2 (an + 1)(an - 1)(bm + 1)(bm - 1) = 3(bd)^2 - 2 …(2) を得る。 (2)式において、右辺が3の倍数でないことは明らかだから 左辺も3の倍数ではない。 このことから、an および bm は 3 の倍数となる。 なんとなれば、an + 1 も an - 1 も 3 の倍数ではないので an は 3 の倍数である。bm についても同様。 ここで、(1)式を再掲する。 (an)^2 + (bm)^2 = 3(bn)^2 …(1) an , bm が共に 3 の倍数であることから (1)式の左辺は 9 の倍数である。すなわち、 素因数 3 を偶数個乗じた数である。 一方、(1)式の右辺は、bn が 3 の倍数であろうと なかろうと素因数 3 を奇数個乗じた数である。 これでは矛盾である。 よって、背理法により 「x^2 + y^2 = 3 となる有理数x,y が存在する」 という命題は偽である。
とても奇妙なことなのですが。a/b ,m/n について既約分数であるということがらを使っていない証明なのです。ひょっとしたら見落としがあるかもしれませんが、自分にとっては驚異でした。
いや。見落としがあるかもしれない(汗)これから考えます。どひゃぁ。これでは証明になっていないなぁ。
と思っていたら結城さんからコメントが。その通りでございます。えぇぇぇんん♪(泣)
フェルマー・オイラーの定理の拡張?
結城さんの無理数クイズはフェルマー・オイラーの定理に於いてx,yを有理数の範囲にまで拡張したもの、の p=3 のケースとなっているような気もしますね。pについて一般化できるとすごいのでしょうね。狙いましたが出来ません。シクシク。元々私には無理だけど。
■hohikuzuの無理数クイズ
my無理数クイズ
回答は特に募集していませんが(変ですよねぇ)トラックバックを頂ければご紹介させて頂く事があります。
- トラックバック先
- http://d.hatena.ne.jp/hoshikuzu/20050414
- はてなダイアリー外部からのトラックバック方法
回答方針へのヒント
実例・反例を示せとは言っていないことに注意して下さい。私が用意している回答は排中律を使いますが背理法を使いません。発想を自由に。このヒントに縛られる必要もありません。
私が回答を示しますか?
私自身がヘタレだとわかれば、良回答のご案内だけですます可能性があります。恥ずかしいからお許し下さい。
■innerHTMLネタについて
bookmarkletで手元のページを書き換えて遊ぶ
あぁ、あれね、と思う人は一杯いると思います。id:EdgarPoeさんの日記を読んでいて必要?に迫られて innerHTMLネタについて - agendaを勉強していたらムズムズと。OperaとIEで。mozilla系は…あぁぁんな気持ちで。openmyaMLの議長さん拡散による人類補完計画。
javascript:(function(){for(var i=0,b=document.body,k,h,h=h?h:b.innerHTML,len=arguments.length;i<len;i++)h=((k=arguments[i])[0].length)?h.split(k[0]).join(k[1]) : h.replace(k[0],k[1]);b.innerHTML = h;})(['<\/A','\u3002\u304F\u308A\u3063\u304F\u306A\u3046<\/a'],['\u3067\u3059\u3002','\u3067\u3046\u3059\u3002'],['。','\u3067\u3046\u3059\u3002'])
here症候群助成装置ではないのです。うぅむ私ごときでは終点アンカーの処置が出来ていないっぽい。放置の方向で。
■それを言っちゃぁおしめぇよ。
そんなこと言いふらさないで下さいっ
サーバ側の解決策が…。Javascriptオンでないと作動しませんが。