ピタゴラス数をなんと 〜荒らされたので立て直しました〜 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>1
いま、このスレをみつけたんだが、
「ピタゴラス数」っていうのは
「一般のピタゴラス数」なのか? それとも
「原始ピタゴラス数」なのか?
細矢治夫『トポロジカル・インデックス ー
フィボナッチ数からピタゴラスの三角形
までをつなぐ新しい数学』(日本評論社)の
第六章『ピタゴラスの三角形とトポロジカル・
インデックス』は読んでみたか?
で、>>63 以降、なにか進捗があるか? ピタゴラス数の公式使ったら時間なんて掛からないだろうに 「ピタゴラス数の公式」っつっても二種類あるんだわ。
「偶奇の異なる、互いに素な (m, n) (0 < m < n)について、
{n^2 - m^2, 2mn, m^2 + n^2}」と、
「互いに素な奇数 p, q (0 < p < q)について、
{(q^2 - p^2 }/2, pq, (p^2 + q^2) / 2」な。
歴史的には後者のほうが古くて、三千八百年くらい
昔の史料に残ってる。
当時は数式というものがなかったから、図形的に
表すんだったら後者のほうが都合がよかったんだろう。 スレ主さんは、「ピタゴラス数の探索」を意図しているようですが、「探索」は無駄です。
原始ピタゴラス数を順次生成するアルゴリズムが存在してます。
しかも、この方法は、「全て」の原始ピタゴラス数を網羅していることが判っています。
ここまではよく知られている事実ですが、私は勝手にこの原始ピタゴラス数をナンバリングしました。下に、
「順番と原始ピタゴラス数を列挙するプログラム」(サイトの制限で2700ほどしか表示できません)
「順番を与えると、それに対応する原始ピタゴラス数を表示するプログラム」
「原始ピタゴラス数を与えると、それに対応する順番を返すプログラム」
の三つを添えましたので、よかったら参考にしてください。
http://codepad.org/VKGibeHo
http://codepad.org/M3SRsSsH
http://codepad.org/hiHjDlZy
なお、三つ目のプログラムは、原始ピタゴラス数を、(奇数項,偶数項,斜辺項) の順番に与えなければなりません。
もちろん、「原始」なので、最大公約数は1で無ければなりません。
本来ならば、この辺の融通が利く形でアップすればいいのでしょうが、面倒なので省略しました。ご了承ください。 ちょっとだけ補足します。この三つのプログラムいずれにも、
>> p[0]= - s1*a -2*s2*b + 2*c;
>> p[1]= -2*s1*a - s2*b + 2*c;
>> p[2]= -2*s1*a -2*s2*b + 3*c;
のようなものが登場します。初見だと、何のことだか全く判らないかもしれないので、説明を加えます。
原理は、単純です。次の問題を考えてみてください。
「直角三角形があります。斜辺とある一辺の長さの差は1、斜辺と残りの一辺の差は2です。三辺は何か?」
答えはもちろん 3,4,5 です。では、次の問題は?
「直角三角形があり、斜辺とある一辺の長さの差はx、斜辺と残りの一辺の差はy。直角三角形の三辺を、xとyで表せ。」
あるいは、「a^2+b^2=c^2、x=c-a、y=c-b の関係があるとき、a,b,cをx,yで表せ」
この問題を解くことにより (y±√(2xy))^2 + (x±√(2xy))^2 = (x+y±√(2xy))^2 ; (複合同順)
という恒等式を見いだすことができ、2xy=(a+b-c)^2に注意して、書き換えれば、
(c-b±(a+b-c))^2 + (c-a±(a+b-c))^2 =(2c-a-b±(a+b-c))^2 が得られます。
プラス側からは、a^2+b^2=c^2という、前提にしていたつまらない式が現れますが、マイナス側からは、
(-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2 ・・・ (★)
を得ます。これがプログラムに登場する式の骨格です。a^2+b^2=c^2 が成立するときに(★)が成立するなら、
aを-aに置き換えた、( a-2b+2c)^2 + ( 2a-b+2c)^2 = ( 2a-2b+3c)^2 も成立し、...というのが、
ある原始ピタゴラス数から、別の原始ピタゴラス数を生成するアルゴリズムとなっています。 >>120
Barning と Hall の U・D・A 行列だな?
おれも、岐阜東高等学校の亀井先生の話でハマッた。 >>119
一般のピタゴラス数は、一見4自由度に見えるが、
「原始ピタゴラス数」に限れば大めに見積もっても
3 自由度しかない。で、偶数足と奇数足が決まれば
斜辺長は決定されるので、たかだか 2 自由度でしかない。
だったら長方形の話に落ちるじゃん、という話がまずひとつ。 >>119
そんなわけで、原始ピタゴラス数の問題は、
「偶奇が異なり、かつ互いに素な自然数 m, n (ただし 0 < m < n)」
または、「互いに素な、相異なる自然数」の問題に帰着する。
こっから先は、数学屋さんに訊いてみてから、ゆっくり考えてみてくれ。
ネタバレとかしちゃうと恨まれそうだから。 >>120
ところで、ピタゴラスの定理を「三角形」で考えるのは
いかがなものか、とつねづね思ってるんだよ。
「縦横と対角線の比が自然数の比で表せる」と考えたほうが、
すっきりするような気がするんだが、どうだ。 >>124
すまん。
この場合の「ピタゴラスの定理」というのは、
自然数の範囲内で考えた場合の話だ。
ユークリッド空間みたいに、実数まで拡張した
場合は(とはいえ、ギリシャ数学では、「有理数」はともかくも
「実数」という概念は十分に整理されていなかったという話は、
また別にあるのだが)、たぶん十八世紀とか十九世紀とかに
ならないと、確立されていないと思う。 >>124
原始ピタゴラス数を見つけるという問題は、単位円上の有理点を見つけるという問題とほぼ等しい。
高校で教わる三角関数の有理表現 cosθ=(1-t^2)/(1+t^2)、sinθ=2t/(1+t^2)
を介せば、ある有理数 t に対し、単位円上のある有理点が対応し、それを原始ピタゴラス数に対応させることができます。
つまり、原始ピタゴラス数は、有理数と1対1に対応可能で、その意味で、
>> 「縦横と対角線の比が自然数の比で表せる」と考えたほうが、 すっきりするような気がするんだが、どうだ。
は自然な考えと言えます。
「ピタゴラス数の生成」 の様なワードでググると、多くの場合は>>123で書かれているような方法が紹介されています。
発生させるだけなら、その方法はシンプルでしょう。しかし、私は別の切り口を与えたかった。つまり、整列です。
原始ピタゴラス数に、1から順番に、番号を与えたかったのです。その具体的な手法(計算方法)が>>119のプログラムに書かれています。
>>122
原始ピタゴラス数と自然数を1対1に対応させる事が可能というのが、>>119の主張の一端。
「自由度」というのを勝手な独立変数の数と解釈すると、「自由度1、しかも自然数のみを走る」と言えます。
>>121
私自身は彼らの仕事を知らずに、導いたものです。内容は中学から高校レベルの数学しか用いていないので、新発見などとは全然
思っていませんが、導入部分、つまり、斜辺との他の二辺の差から、元の直角三角形の三辺を復元する問題を考えることで、
このアルゴリズムに自然に到達できたという点については、もしかすると、オリジナリティがあるかもしれないとは思っています。 >>126
> 原始ピタゴラス数を見つけるという問題は、単位円上の有理点を見つけるという
> 問題とほぼ等しい。
結城浩さんの、『数学ガール』にもありましたね。
「単位円上に、有理点が無限個存在する」ことの証明に、
「ピタゴラ・ジュースメーカー」という名前で原始ピタゴラス数の
一般式が出てきました。
> しかし、私は別の切り口を与えたかった。つまり、整列です。
> 原始ピタゴラス数に、1から順番に、番号を与えたかったのです。
すなわち、「原始ピタゴラス数は加算無限個なのだから、自然数と
一対一に対応づけられる」という発想ですね。
あとは、「互いに素な奇数の積」(一般的な式は、「偶奇の異なる、
互いに素な自然数」としていますが、ユークリッドが残している式は、
「奇数&奇数」であり、「0 の発見者」として知られているプラーマグプタ
が書き残したものが最古のようです)が同じであるときに、どのように
順序付けが可能なのか、という話になると思います。
このとき、二つの奇数 p と q を考えたときに、長方形 p × q を
考えて、「面積が同じであるときに、正方形に近いのはどっちか?」
を考えると、順序付けが可能です。
たとえば「7 × 15」と「5 × 21」と「3 × 35」だったら、
順序付けが可能ですよね?
> 私自身は彼らの仕事を知らずに、導いたものです。
脱帽します。私は、Barning と Hall の業績を知ったうえで、
その逆問題(任意の原始ピタゴラス数を、{3, 4, 5}と
U, D, A の積で表すアルゴリズムを求める)が未解決
だというのを知り、それを連分数によって解決してから、
図形的な解法を思いつきました。
>もしかすると、オリジナリティがあるかもしれないとは思っています。
とのことですが、独立に解決しているのですから、充分にオリジナリティを
誇っていいと思います。
なお、岐阜東高校の亀井喜久雄先生も、Barning と Hall とは独立に
正問題を発見し、解いていらっしゃいます。個人的には、
「Barning = Hall =亀井の定理」と呼んでいます。 すでに紀元前千八百年前に、古代バビロニア人が
「奇数×奇数」の公式を発見していたようです。
「プリンプトン322」でネット検索していただければ
すぐに見つかると思いますが。
プリンプトン322は、「0 < p < q < 180」の範囲内で、
「正方形と黄金長方形の間にある長方形」を探索したものだと
いうのが確認されています。
「なんで15個なの? “正則数”って、どういう概念なの?」とか
「なんで11番は15倍されていて、15番は2倍されているの?」
あたりは、自分で考えたほうが楽しいだろうと、メソポタミアの書記の神である
ナブー様が仰っているので、答えはナイショにしておきます。 プリンプトンの石板のピタゴラス数、素因数は2と3と5で作られてる。 >>129
その 2 と 3 と 5 が選ばれた理由は、当時六〇進数が使われて
いたからなんじゃないか、と考えています。
「割り算する」は、「除数の逆数を掛ける」ということと
等価です。そこで、古代バビロニア人は「逆数を取ったときに
有限小数になる数」を選んだようです。
60 = 2 * 2 * 3 * 5 なので、因数が 2, 3, 5 だけの数は、
逆数を取っても(六〇進数で表したときに)循環小数になりません。
「だったら三〇進数でもいいんじゃない?」という話には
なりましが、60 の約数には 1, 2, 3, 4, 5, 6 が出てくる
(30 だと 4 が出てこない)ので、なんとなく“美しい”と
思ったのかもしれません(単に実用的な配慮かもしれませんが)。 奇数 p, q で表すと、三つの項は
p*q, (q^2-p^2)/2, (p^2+q^2) /2 になります。
この三つの項を合計して整理すると、q * (p + q)
になります。
このとき p * q は長方形、(q^2-p^2)/2 は
底辺が q - p で 高さが p + q の三角形の面積となり、
長方形 q * (p + q) からこの二つを引いたものが
対角線の長さと一致します。
古代メソポタミアには数式というものが存在しなかったので、
このような形でピタゴラス数の一般式を記憶していたのでは
ないかと考えています。
まだ未解読の粘土板は何十万とあるそうなので、どこかに
この図形が描かれているかもしれません。 ここで、「互いに素である奇数 p, q からなる長方形」を考えます。
この長方形に対して、ユークリッドの互除法を適用することを
考えましょう。
ユークリッドの互除法は、「長方形から正方形を取り去る」という
操作ですが、p, q がともに奇数である場合、「互いに素である」
という性質は保存されますが、「ともに奇数である」という
性質は保存されません。そこで、「長方形から二つの正方形を
取り去る」ことにします。
そうなると、q < 2p のときには面積がマイナスになってしまうので、
ここで符号を反転します。
すると、p と q は互いに素なので、面積 1 の正方形が残ります。 >>132 つづき
この正方形は, 原始ピタゴラス数 {0, 1, 1} に相当しますが、
これは三角形にも長方形にもなりません。そこで1ステップ
戻すと、[1, 3] となり、{4, 3, 5} が出てきます。
じつは、この「逆操作」は三通りあって、これが U, D, A
それぞれの行列を掛ける操作に対応します。
すなわち、Barning = Hall = 亀井の定理の逆は、
「正方形を二個除去する互除法」に帰着します。 ごめんなさい。
>>119
> 三つ目のプログラムは、原始ピタゴラス数を、(奇数項,偶数項,斜辺項) の
> 順番に与えなければなりません。
{3, 4, 5} が最小だから、この順番が基本だよね? >>133 では
逆にしてました。(奇数項, 偶数項, 斜辺項)というスタイル以外に、
(短辺、長辺、斜辺)というスタイルもあるので混乱していました。
UDA 行列も、縦ベクトルに向かって右から行列を掛ける
スタンダードな方法と、横ベクトルに向かって左から行列を掛ける
「海軍式」というのがあるそうですので、たぶん形も二種類あることに
なります。
> 本来ならば、この辺の融通が利く形でアップすればいいのでしょうが、
> 面倒なので省略しました。ご了承ください。
「面倒臭がり(怠惰)」は、プログラマの三大美徳のうちの一つ(Larry Wall)だ
そうですから、よろしいんじゃないですか(笑)。(残りの二つは「短気」と
「傲慢」だそうです)
私も暇をみて改修してみようかと思っています(とはいえ言語は Java ですが)。 >>134
ピタゴラス数、あるいは、原始ピタゴラス数から新しい(原始)ピタゴラス数を生成する
という目的においては、UDA 行列のどれを用いても、かまわないと思います。
ただ、「ナンバリング」を行う上では、「U行列を用いた場合の番号変換はこれ、D行列を用いた場合の
番号変換はこれ、...」などと、ルールを固定しなければなりません。
同時に、生成されたピタゴラス数に対しても、aなのか、bなのか、見極める手段が必要となります。
この意味において、短辺か長辺かという視点は適切ではありませんでした。
しかし、第一項(=a)を奇数項、第二項(=b)を偶数項、そして、変換式を
(a,b,c)→(a~,b~,c~)=(-a-2b+2c,-2a-b+2c,-2a-2b+3c)
及び、これのa,bの符号を反転したものに固定すれば、この性質が維持されることが、
上の式を見ていただければ、判ると思います。それ故、ナンバリングを行う際には、この方法を採用しました。
もちろん、(a,b,c)→(a~,b~,c~)=(-2a-b+2c,-a-2b+2c,-2a-2b+3c) という変換式を採用することも可能でした。
その場合、世代の偶奇で、a,bの偶奇が入れ替わるようになってしまいます。
あと、Plimpton322の話は初めて見ました。ちょっと眺めてみましたが、メソポタミア流の
タンジェントの数表なのではと思いました。
そして、その値を定めるのに参考にした直角三角形のデータが添えられているだけなのではと。
そう考えると、ピタゴラス数に関連する値が出てくるのは、至極当然な事となります。 >>135
> あと、Plimpton322の話は初めて見ました。ちょっと眺めてみましたが、
> メソポタミア流のタンジェントの数表なのではと思いました。
『「まぁ待つさ」と、僕は答えた。』
ファインマン『ご冗談でしょう、ファインマンさん II ― ノーベル賞
物理学者の自伝』p.144 申し訳ございません m(_ _)m
>>124
(都市文化発祥の地であると謂われている)古代メソポタミアは、
(ユークリッド幾何学が成立した、「公準」「公理」「定理」の
ような)「証明」「論証」のシステムは成立していなかったであろう、
という話が前提にあって、「数学的な扱いやすさ」と「数学教育的な
観点」の間のギャップについての配慮が足りなかった、という点に
ついてはお詫びします。ごめんなさいm(_ _)m
そもそもが、>>124 で「長方形」という言葉を出し忘れていたのが
問題であったと思います。
「短辺と長辺と対角線の比が、自然数の比で表される長方形」と、
はっきり言明しなければならなかったと思います。
「正方形はどうなるんだ」という意見もあると思うんですが、
その時点で「正方形の対角線は、辺長との比は無理数である」と
いうのが明らかになって以降の概念、と考えていますので、お赦しを。 すみません。あとひとつだけコメントを。
ピタゴラス数(あるいは、ピタゴラス数による三角形
または長方形)を、有理数の上で(直観的に分かりやすい
形で)整列するのは、かなりややこしい話になると思いますよ?
>>127 で述べたように、q/p で考えると、わりと綺麗に
整列ができると思います。
そのとき、「正方形にいちばん近い p と q の比はどこに
あるのか?」という話になって、連分数表示だと、そこに
黄金数 φ が顔を出す、というのがまた面白いんですが。 >>127
>> このとき、二つの奇数 p と q を考えたときに、長方形 p × q を
>> 考えて、「面積が同じであるときに、正方形に近いのはどっちか?」を考えると、順序付けが可能です。
第一キーが面積の小さい順、第二キーが正方形に近い順、のような方法で、
整列するということでしょうか。そのようなアプ□−チ法もありますね。
私が、思いついていたのはもっぱら 分数の整列 を介しての方法です。
第一象限 の y<x 領域の格子点を原点に近い順に並べる。ただし、(x,y)に対し、分数y/xを与え、同じ値のものは除外とか、
Farey分数を利用するのも、ありかと考えました。
しかし、これらいずれも、番号→分数、あるいは、分数→番号 を得る手順が美しくありません。
二つの奇数p,qを用いての方法を用いた場合も、番号を与えてそれに対応する原始ピタゴラス数を答える、
あるいは、逆に原始ピタゴラス数を与えて、それが何番かを答えるという関数を作るとすると、
オイラーのφ関数の積算か、それに準ずる計算が必要となるのではないでしょうか
>>119の方法は三分木構造に沿って生成されるものなので、番号から原始ピタゴラス数を求める時も、
原始ピタゴラス数から番号を求める時も、単純な計算を、log[3](n) 回ほど繰り返すことで求めることができます。
いずれも大きなところでの計算時間は、この方法の方が早いのではと思います。
p.s.通常の書き方の「アプ□−チ」がなぜかNGワードのようで、投稿ができませんでした。遅れて申し訳ありません。 >>139
> 逆に原始ピタゴラス数を与えて、それが何番かを答えるという関数を
> 作るとすると、オイラーのφ関数の積算か、それに準ずる計算が
> 必要となるのではないでしょうか
本当にそうです (T_T)。
すべての自然数とすべての(正の)有理数は、
ともにアレフ・ゼロ(可算無限個)なので一対一の対応づけが可能だ、
ということは理論上は確かなんですが、その順序性を保持したまま
対応づけをしてしまうと、自然数を与えたところで有理数は「実質ゼロ」に
なってしまい、有理数を与えると自然数は「実質、無限大」という話に
なってしまいます。
そういう面倒臭いところが、無限の無限たるゆえんというか、めんどうくさい
部分なんですよ。ゲオルグ・カントールが「われ見るも、われ信ぜず」と
告白したというのも頷けます。
いまのところ、「UDAで一意に表せるんだから、三進数で表現するのが、
いちばん素直なんじゃねぇの?」という投げやりな意見が、我々の いちおうの
公式見解ということになっています。
だけど、それをすると大小の比較関係が単順序構造じゃなくて
半順序構造になってしまう(実際には、半順序構造が成立すると考えると
「木構造」ではなく「束(そく)」になってしまうので、また扱いが異なって
しまうんですが)んですよね。
それが、Barning=Hall=亀井の定理の逆問題を半世紀以上“未解決”にしていた
原因なのではないか、と思ったりはしています。
ですから、任意の原始ピタゴラス数の比較関係としては「共通の根が、
どこにあるか」で判断するしかないと考えています。 そうそう。そのあたりのアプローチとしては、細矢治夫先生が、
トポロジカル・インデックス(有機物のような、分子量が大きく
複雑な構造をもつ分子を、どのように検索・比較するかという指標)
によって評価しようとしていらっしゃいました。
数学的な考察に役立つかどうかはわかりませんが、ご参考までに。 >>140
> 「UDAで一意に表せるんだから、三進数で表現するのが、
> いちばん素直なんじゃねぇの?」
ということで、Java による逆ルートの探索プログラム(Java 版)の
ソースおよび解説は、「BackLog 四角い三角形」で検索すると
すぐ見つかるはずです。(引用およびソースの再利用は歓迎します)。 >>139
> p.s.通常の書き方の「アプ□−チ」がなぜかNGワードのようで、
> 投稿ができませんでした。遅れて申し訳ありません。
>>141
> そのあたりのアプローチとしては
たぶん、お使いのプロバイダを利用しているユーザの
環境に、分散型の、Dos アタックを仕掛けるマルウェアが
巣食っていたのだと思います。
しばらく(三十分以上)放っといて再アクセスすると、
だいたいなんとかなるようですよ (^_-)b~☆。 「長方形から正方形二つを取り除く」のような操作が、どうしてUDA行列の
話と直結するのか、不明瞭でしたが、紹介されたところを見回って、見えてきました。
UDA行列や、(-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2 等の話は、
原始ピタゴラス三角形の辺長 a,b,c (a^2+b^2=c^2)の値そのものの話であり、操作です。
この、a,b,c が変化する様子を、a=m^2-n^2、b=2m*n、c=m^2+n^2(あるいはその半分?)
を満たす、m,n の世界で眺めたとき、m*nの長方形において、二つの正方形を取り除いたり、
追加したりする操作に対応すると言うことだったんですね。すっきりしました。
全ての原始ピタゴラス数は、単位円上の一つの有理点に対応します。
そしてこの有理点は、一つの有理数に対応可能です。
(変換方法はいくつも考えられますが、最も一般的な方法は、((1-t^2)/(1+t^2),2t/(1+t^2))を利用するもの。)
従って、全ての有理数を、何らかの有理変換を、何度か経て、1/2 or 2 (原始ピタゴラス数{3,4,5}に対応する有理数)
に到達でき、また、その逆も可能なら、それらの有理変換は、原始ピタゴラス数を整理する道具に使えると言うことですね。 >>144
私の思うところのものを正当に理解して下さっていることを
感謝します。m(_ _)m
数学の初心者に対して(「あなたが数学の初心者」であるという意味ではありません。
あなたは、おそらくは数学を教える立場に立つことに向いていると、私は考えます)、
より分かりやすい形でいうと
> 従って、全ての有理数を、何らかの有理変換を、何度か経て、
> 1/2 or 2 (原始ピタゴラス数{3,4,5}に対応する有理数)
> に到達でき、また、その逆も可能なら、それらの有理変換は、
> 原始ピタゴラス数を整理する道具に使えると言うことですね。
における「有理数」が、「すべての既約分数」と同義である、
ということに対して言及(つーか、念押しというか注意喚起っつーか)
して下さると、嬉しく思います。 >>144
『Ikuro's Home Page』(ttp://www.geocities.jp/ikuro_kotaro/)の
『今月のコラム(閑話休題)』のなかの、『エジプト三角形の作図』や
『ピタゴラスの小石?』なんかは、このスレと関連して
面白いかと思います。お勧めです。 そうそう。小学校の算数の授業では、「分数の約分」は
教わるんですけど、「分子と分母に対する共役数を
求める方法」は現在の教育では、教えていないんですよ。
「なんで互除法を教えないのかなぁ? 分子分母の
最大公約数を求めて、それで分子と分母を割ればいい
だけじゃないの?」と思うんですが、「最大公約数」とか
「ユークリッドの互除法」を、「小学生にもわかるように
説明する」ためのノウハウが、小学校で算数を教えている先生に
伝わっていないのではないか、と思います。
(正方格子空間における)「長方形」をベースにした互除法の説明は、
たぶん小学生にも通じると思うのですが、いかがでしょうか。 「ユークリッドの互除法」「連分数」
「黄金比」「白銀比」は、実用的な観点からも
教育的な観点からも、セットで教えたほうが
いいように思います。
小学校高学年から中学校にかけての年齢だったら、
充分に理解できる概念のように思うんですが、
さいきん「中高一貫教育」というのが流行りなので、
「小学校で教えられていないものを、中学校の
受験問題に出題するのは、いかがなものか?」みたいな
配慮があるのかもしれません。
その結果、「受験で出ないものは出さない」ことになり、
学ぶ機会を失っているのかもしれません。
だったら「約分・通分」と一緒に、「因数分解」「素数」
について、じっくり教えたほうがいいと思うんですけどねぇ。 『Ikuro's Home Page』さんには、よくお邪魔してます。大変参考にさせていただいています。
最大公約数の話ですが、「ユークリッドの互除法」と名付けられている方法があることを、
おそらく私は高校1年で習いました。ただ、a と b の公約数は、a と a-b の公約数でも
あることを、どこで教わることもなく、体得していたため、当然のことと受け止めたことを覚えています。
小学生相手には「ユークリッドの互除法」ではなく、(a と b の公約数)=(a と a-b の公約数)
を教えるだけで、ほぼ十分なのではないかと思います。これを繰り返していけば、
自動的にユークリッドの互除法にたどり着きますし。
「連分数」 、「黄金比」、「白銀比」、などを、小中学生に面白く教えることができれば、
数学好きな児童・生徒を増やせそうですよね。あと、フィボナッチ数列なんかも。
でもこれらは、学校の算数/数学の授業にはそぐわないと考えられているのではないでしょうか。
特別授業とか、地域住人参加可能な公開授業なんかの方が相性がよいと思います。
144に関連し、何か面白い有理数→有理数→有理数→...の様な変換はないかと思っていたんですが、
思いがけず、Farey分数がそのまま使えることに気づきました。
Farey分数は二分木構造そのものですから、原始ピタゴラス数を二分木構造に埋め込むことが可能です。
例の三分木構造は、一つのピタゴラス数から、一人の親と三人の子を直接見つけることができますが、
この二分木構造は、親子関係を確定させるためには、ある程度の近親者情報が必要となります。
そのため、あまり面白くはありません。 ユーックリッドの互除法自体は、大学生になってから
知ったのですが、「格子点を持つ長方形」の性質に
ついては、小学生のときに気づいていました。
小学生のときには病気がちで、和室に布団を敷いて
寝かされていたのですが、そのとき障子が目に入るんですよ。
で、角のところから45°の角度で格子点を辿ってゆく
(辺のところでは“反射”する)と、mとn が互いに素であるとき、
すべての升目を一度づつ通って別の数に至ることに気づきました。
このとき、辺に着いたら、隅からその点を対角線として持つ正方形
になるわけで、後にフィボナッチ螺旋を見て「あぁ、そういうことか」と
納得しました。
ですから、私にとっては「ユークリッドの互除法」と「連分数」は、
同じコインの両面、というイメージがあります。 >149
>>(a と b の公約数)=(a と a-b の公約数)
と約分については、a と b のそれぞれを素因数分解して
重複している素因数の積、という頭があるので、
たとえば分子分母の大きいほうから小さいほうを
取り除いていって、「上下が同じになる」か「上下が 0 」になる
というリクツがいまいち腑に落ちません。
小学校で、「約数をすべて求めよ」という場合は因数分解してから
組合せを作るというのもなかなか大変だし、そもそも「素因数分解の
一意性」だってギリシャ時代には「経験的に明らか」とされていましたが、
厳密な証明はガウスを待たなければなりません。また、「素因数分解を
行なう効率のよいプログラムは発見されていない」とかいった話も
ありますし。
このあたりのギクシャクした話が、算数嫌いの子供を生み出しているかも
しれない、とは思います。 そうそう。私は「ユークリッドの互除法」を「二つの実数の比を
有理数で近似する方法」として知ったのが先で、「自然数で表される
長方形から正方形を取り除く方法」だと知ったのはその後です。
遠山啓先生と銀林浩先生の子供向けの本に、「二人の承認が「異なった
長さの布の値段を決める」ために、短いほうで長い方の布を取りつくし、
残った半端な部分でもう一つの布を取りつくし …… とやっていって
連分数表示を求め、そこから元の比を計算する」という話が出てきました。
古代メソポタミアでは、同じような方法で、長方形の土地の形状比を
もとめていたのではないか、と私は考えています。 コンピュータを用いてユークリッドの互除法を行なうには二種類あって、
わりあいに一般的なのが「繰り返しによる方法」で、ちょっとトリッキーな
感じがするけれど慣れると自然、というのが「再帰呼び出し(リカーシブ)を
使う方法」です。私はリカーシブ派なのですが、「ベズーの公式を互除法を
使って解く」という話があり、それをプログラムで書いてみようとしたところ、
どうもリカーシブで書くとややこしいことになりそうだ、ということになって
しまいました。
実際のプログラムは、『BackLog』の『ベズーの公式。』
(2015/12/18)に掲載。関連エントリは、ちょっと前にいくつかあります。
Java がある程度読めないと while(true) みたいな制禦構造が出てきたり
インデントが変だったり(loop - until - do - repeat 構造、別名を
「n + 1 / 2」ループ」といいます)して読みにくいし、動かそうと
思うと Eclipse のような IDE があったほうがいいので面倒臭いですが、
いちおうご参考までに。 >149
> 「連分数」 、「黄金比」、「白銀比」、などを、小中学生に面白く教えることができれば、
> 数学好きな児童・生徒を増やせそうですよね。あと、フィボナッチ数列なんかも。
> でもこれらは、学校の算数/数学の授業にはそぐわないと考えられているのでは
> ないでしょうか。
遠山啓(とおやま・ひらく)さんという「数楽者」(「すーらくもん」と読みます。
『数学セミナー』の創刊者です)の方が、「『ひと』熟」という子供のための
キャンプのようなものをやってらっしゃって、小学生にも中学生にも、普通に
理解できたようですよ? 通称を「水道方式」といいまずが、実際の広い概念は
教具や基本思想を含めると、もうちょっと広い。ただ、遠山 啓(とおやま・けい)
という方が水理学の方がいらっしゃって、『下水道』という本を出していたのを
見て大いに気に入った、というエピソードがあります。 遠山さんは、「子供を教えたい」というので東工大のお辞めに
なって児童教育のほうに進まれました(たしか「山びこ学校」かな?)。
「授業が終わってから、子供たちに『これは、勉強か、遊びか?』と
訊いたら、『面白かったから、あそびだ』と答えてくれた」といって
ニコニコされていたそうです。また、「子供という、こんなに面白い
オモチャを貸してもらえないて、しかも給料まで貰えるんだから、こんなに
いい商売はない」とも。森毅センセが遠山さんにお会いしたとき「大学を
辞めるとおもしろいぞ! 森クン、キミも早く辞めたまえ」と肩を掴まれた
そうです。「まだ助教授なんで勘弁してください(T_T)」と頭を下げたとか。 Farey分数を順番(※)に表示する関数、分数から(※)で定義した順番を返す関数、
順番からFarey分数を返す関数を作ってみました。
分数からピタゴラス数へ変換可能なので、それも併記してあります。
単位円上の2点(3/5,4/5)と(4/5,3/5)に対応する既約分数が異なるため、
同型のピタゴラス数が二つづつ登場してます。
「分母分子とも奇数」型か、「どちらかが偶数」型で分離できるようですが、
あえて、{3,4,5}と{4,3,5}を別々に扱うこととしたピタゴラス数のナンバリングが
完成できたと思います。
ttp://codepad.org/NkJaTo4f >>156
本当に余計なお節介だというのは重々承知しているし、
数学関係の専門書に出てくるプログラムがああいう感じの
C のプログラムだというのもよく知っている(数学者の
先生は、ソフトウェア開発が専門ではないので、とりあえず
動いてロジックに問題がなければ御の字、と考えていらっしゃるのは
頷ける)のだが、
K&R のスタイルは、そんなにガチガチに遵守しなくていいんだぞ?
適当な統合開発環境(IDE)があったら、乗り換えたほうが楽だ。
私はそれで Eclipse と Java に移行した。Eclipse の前身は
VisualAge C/C++ という C/C++ の IDE だったから、
たぶん C でもなんとかなると思う。 >>156
ついながら、「配列」は “arey” ではなくて “array” 、な。 失敬。Faray は人名のほうだったか。「なんちゃらかんちゃら配列」
かと思っていた。
私は原始ピタゴラス数のことを、Babylonian Rectangle と呼んで、
そういう名前のオブジェクトを定義し、
Java の ArrayList に突っ込む、という形でプログラムを
書いていたので「この配列はなんだ?」とか考えこんでいた。(-_-!) WikiPedia によると、ファレイ数列は連分数と関連があると
書いてある。プリンプトン322を解読していたときに、
「古代バビロニア人は 180 以下の(分子分母がともに
基数の)既約分数をどうやって網羅したんだろう、と
首を捻っていた(もちろん「根性で」という可能性も
高いんだが)のだが、黄金数 φ を連分数表示すると
[1; 1, 1, 1, 1, …] で1+√2が[2; 2, 2, 2, 2, …]
というのを見ると、「ワシらは三千年以上も前の
連中の後追いをしていたのか?」と気弱になってくる。orz 自分でよく使っている環境は別にあります。
そこで作成したものを、codepadに移植する際に、クラシカルなものになってしまっているのだと思います。
以前、別の言語で実行させたとき、原因不明のエラーが出て、対処に困りました。
そのとき、このスタイルで実行させたところ、うまく走ってくれたので、
ここに投稿するときにはこのスタイルを取ることにしてます。
もし、字下げや、関数の呼び出しのようなスタイルに対するものでしたら、染みついたものですから、しょうが無いですね。
それと、私は低級側好みます。
例えば、next_permutationという関数があります。次々に新しい順列を返してくれるものです。
使う側としては便利なのですが、どのようなアルゴリズムでやっているのか気になって調べたら、
「無駄」があることが判りました。数度だけ利用するなら、全然問題にならないレベルですが、
全ての順列を発生させる場合には、無駄な処理を繰り返すことになっています。
ということで、順列を発生させるような場合も、自分で発生させています。
このように、内部で何をやっているかよく分からず、かつ、自分で作成できるような場合は
自作することが多いです。私にはC++が馴染んていると思うのですが、この辺に理由があるんだと思います。
「Farey分数」は、wikiには「ファレイ数列」として載っていますね。確かに人名由来の名称のようです。
>>139では、分数と番号の変換が美しくないと書きましたが、ファレイ分数を、「値」を実態とするところの有理数
と考えるのではなく、「範囲」に対する名称と認識することで、変換を低コストで実現可能であることに気づき、
今回、実際にコード化を試しました。昨夜のプログラムの出力に、「範囲」を載せている所以です。 >>161
低級レベルの記述をしようと思うんなら、確かに C(あるいはC++)は
よい選択だと思う。おれも元々は数値計算屋で、大規模問題を
貧弱なコンピュータ環境で解く、というのに血道を上げていたので、
そのあたりの感性はよく理解できる。
初等関数の数値計算を行うときに、“CORDIC”という手法があって、
ほぼ乗算程度の計算量で初等関数が最後の桁まで求まる
(必要なのは、 arctan() の数表だけ)んだ。
そういうのが好きだったら、一松 信先生の『初等関数の数値計算』とか
面白いと思うぞ?
あとは森口繁一先生の『数値計算夜話』とか、一松先生の『教室に電卓を!』とか。
おれはプロとしてチーム開発を長年してきたので、「速くする前にわかりやすくしよう」
という観点から、C から Java へ移行したという経緯がある。C のような低レベル
言語だと、「見立て」というか、「こういうことを言いたいんですよ」というのが、
(実行速度との絡みで)伝えにくいという意識がある。
昨今は CPU は速いしメモリ空間もでかいので、「こういうことを
言いたいんですよ」というのがざっくり説明しやすい Java に興味を
持っている。
それに、Java はけっこう C の流儀を引きずっているので、
年寄りとしては、なんとなく安心するところがある。 >>161
あと、「入山のアルゴリズム」でググッてみると、
面白いかもしれないと思う。 >>161
> もし、字下げや、関数の呼び出しのようなスタイルに対するものでしたら、
> 染みついたものですから、しょうが無いですね。
いや、インデントに関しては、個人の趣味の問題なので「好きにしろ」
という立場なんだが、「変数を頭のところで宣言する」というのが
わりと古いスタイルの C に影響されているかもな、と思った。
CPU のレジスタ構成とかを考えると、昔は高速化に貢献していた
部分はあるのだが、昨今のコンパイラの最適化は信用していいと
思う(不安だったら、C のコンパイラはアセンブラのソースを
吐くので、それを読んでみたら安心できると思う)ので、
変数のスコープを明確に示して、人間側のエラーを減らしたほうが、
(あくまで職業的なプログラマの立場から言うのであって、個人が
書くプログラムに関しては、ぶっちゃけ趣味の問題でしかないが)
たぶん長期的にみると効率がいいと思う。
プログラマは「三日前の自分は他人だ」と云うしな。 あと、これは数学板で言うこっちゃないと思うが
(つーても FORTRAN は「数式変換(FORmula TRAMsratpr)」の
略だし、「ALGOL」は、アルゴリズム記述用の言語として定義された
経緯はあるのだが)、
変数名として i, j, k を使うのは、i, j, k, l, m, n(たぶん integer から
natural までだと思う)で始まる変数は、定義されていなくても整数型の
変数だ、という FORTRAN 60 の処理系依存のルールが起源だと思う。
昨今は「局所変数は、使うスコープの中で定義する」というスタイルが
一般的になっていると思う。
このあたり、哲学(論理学)における、自由変項(グローバル変数)と
束縛変項(局所変数。関数引数と、関数内の作業領域が、この代表)に
対応しているので、興味があったらこれらの言葉をキーワードとして
関連図書を漁ってみると楽しいかもしれない。 >>161
いきなり思い出したので書いておくと、
大田区の区議会選挙の話でシャープレイ=シュービック指数を
計算するときに、すべての組合せを生成する(もうちょっと
効率のいい計算法があるはずなんだが、考えるより動かしたほうが
早そうだった)ルーチンが必要になり、その昔書いた「動的ちり集め」の
ロジックをひねくって実装した記憶があった。
ところが、Java には明示的なポインタがない(「参照」は実質的には
ポインタなんだが)ので、swap ができなくてギブアップした経験がある。
そんなわけで、「とりあえず、整列やらなんやらはライブラリに任せて、
中身に関しては(よっぽど遅くなかったら)考えないことにする」と
居直った。
だから、昔の関数電卓を使うと、初等計算の計算より階乗の計算のほうが
あからさまに遅いのを見ると、なんとなく諦念が浮かんでくる。 色々と面白いお話ありがとうございます。本論からは外れてしまいますが、少しコメント
させてもらうと、FORTRAN、暗黙の宣言文ときたら、私はルンゲクッタ法を思い出してしまいます。
表記の異なる4つの式を、暗黙の宣言文を利用(悪用)して、1ステップの式で表し、
こっそりループに閉じ込めました。そして初見の人に、「これ、ルンゲクッタ法使ってるの?」と
言わしめる悪戯をしていたのを思い出します。
投票力指数については初めて目にしました。順列生成は、覆面算とかのパズル系でよくつかいますが、
このような実用的なところでも利用されていたんですね。勉強になりました。
>> プログラマは「三日前の自分は他人だ」と云うしな。
呂蒙のお話かと思ったけど、「自分が書いたはずの三日前のコードの意図が分からない」的なことですよね。 >>168
> そして初見の人に、「これ、ルンゲクッタ法使ってるの?」と
> 言わしめる悪戯をしていたのを思い出します。
N88-BASIC には GOTO と GOSUB というコマンドがあって、
飛び先が両方ともラベルだった。
で、「八人の女王」のプログラムで GOTO と GOSUB と RETURN を
ごっちゃに使って「追っているとだんだん意味不明になって頭を抱える」
というのを書いたことがある。 >>168
呂蒙って知らなかった。『男子、三日会わざれば刮目(かつもく)して見よ』
みたいな話じゃなくて、「喉元過ぎれば熱さを忘れる」とか「ニワトリは
三歩歩くと忘れる」程度の話。
ちなみに、ナメクジは思い出した瞬間に冷やすと忘れる、という話が
あるので、「トラウマとかがあった場合、思い出した瞬間に冷やしたら
どうだろう?」みたいな話が昔あった。 >>170
日経サイエンス、一九九〇年七月号、P.82、
『冷やすと消えるナメクジの記憶』。 なんかこのスレも決着がついちゃった感があるので、
残りを埋める意味で Java のソースでも貼っとくか。
「原始ピタゴラス数」という名前ではなく、
「縦横と対角線の長さが自然数で表される長方形」を
「バビロニア長方形」と呼んでいる。
クラス定義と、縦横の比のコンパレータ。コンテナに突っ込んで
ソートすると、縦横比で整列される。 public class BabylonianRectangle {
private int p;
private int q;
private int m;
private int n;
private int odd_side; // 奇数辺
private int even_side; // 偶数辺
private int short_side; // 短辺
private int long_side; // 長辺
private int diagonal; // 対角線
private int magnitude; // 倍率
private double aspect_ratio; // 形状比 /*
* コンストラクタ
* @param a
* @param b
*/
public BabylonianRectangle( int a, int b ) {
this.magnitude = Secretary.gcf(a, b);
a /= magnitude;
b /= magnitude;
if ((a % 2 == 1) && ( b % 2 == 1)) {
this.m = a;
this.n = b;
this.p = (n - m) / 2;
this.q = (n + m) / 2;
/*
* Euclid の公式
* {(q^2 - p^2) / 2, p * q, (p^2 + q^2) / 2)}
* ただし、p, q は互いに素であり、ともに奇数.。
*/
this.even_side = (( this.n * this.n ) - ( this.m * this.m )) / 2;
this.odd_side = this.m * this.n;
this.diagonal = (( this.m * this.m ) + ( this.n * this.n )) / 2;
} else {
this.p = a;
this.q = b;
this.m = q - p;
this.n = q + p;
/*
* Brahmagupta の公式
* {n^2 - m^2, 2 * m * n, m^2 + n^2}
* ただし、m, n は 0 < m < n かつ
* 互いに素であり、偶奇が異なる.
*
*/
this.odd_side = (q * q) - (p * p);
this.even_side = 2 * p * q;
this.diagonal = (p * p) + (q * q);
}
// 短辺と長辺の長さを求める。
this.short_side = (odd_side < even_side) ? odd_side : even_side;
this.long_side = (odd_side < even_side) ? even_side : odd_side;
this.aspect_ratio = (double)long_side / (double)short_side;
} /*
* getter. 原則的に setter はない.
*/
// Euclid の公式
public int getM() {
return this.m;
}
public int getN() {
return this.n;
}
// Brahmagupta の公式
public int getP() {
return this.p;
}
public int getQ() {
return this.q;
}
// 奇数辺の長さ
public int getOddLeg() {
return this.odd_side;
}
// 偶数辺の長さ
public int getEvenLeg() {
return this.even_side;
}
// 短辺の長さ
public int getShortSide() {
return this.short_side;
}
// 長辺の長さ
public int getLongSide() {
return this.long_side;
}
// 対角線の長さ
public int getDiagonal() {
return this.diagonal;
}
// 形状比
public double getAspectRatio() {
return this.aspect_ratio;
} /*
* 扱いが かなり面倒臭い. setter が必要.
*/
public int getMagniTude() {
return this.magnitude;
}
@Override
public String toString() {
int x = this.getShortSide();
int y = this.getLongSide();
int z = this.getDiagonal();
float sort_key = (float)( z * z )/(float)( y * y );
String ret =
"{" +
Integer.toString(this.getShortSide()) + ", " +
Integer.toString(this.getLongSide()) + ", " +
Integer.toString(this.getDiagonal()) + "}:" +
sort_key;
return ret;
}
public String toString2() {
String ret =
"( p = " + this.getP() + ", q = " + this.getQ() + "):" +
"( m = " + this.getM() + ", n = " + this.getN() + "):" +
"{" +
Integer.toString(this.getShortSide()) + ", " +
Integer.toString(this.getLongSide()) + ", " +
Integer.toString(this.getDiagonal()) + "}:" +
this.getAspectRatio();
return ret;
}
} import java.util.Comparator;
public class BabylonianRectangleComparator implements Comparator<BabylonianRectangle> {
public int compare( BabylonianRectangle a, BabylonianRectangle b ) {
if (a.getAspectRatio() == b.getAspectRatio()) return 0;
if (a.getAspectRatio() > b.getAspectRatio()) return 1;
return -1;
}
} >>128 以降の、プリンプトン322の話は以下のような
感じで確認できる。 import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import toybox.Abaci;
public class P322_05 {
// static final double phi = 1.732d;;
static final double phi = (1.0d + Math.sqrt(5.0d)) / 2.0d;
static final int UPPER_LIMIT = 180;
public static void main( String [] args ) {
_main();
}
private static void _main() {
ArrayList <BabylonianRectangle> BRs = new ArrayList<BabylonianRectangle>();
byEuclid(BRs);
// byBrahmagupta(BRs);
Collections.sort(BRs, new BabylonianRectangleComparator());
print(BRs);
print2(BRs);
}
// ユークリッドの公式
static void byEuclid(ArrayList <BabylonianRectangle> brs) {
for (int m = 1; m < UPPER_LIMIT; m += 2) {
for (int n = m + 2; n <= UPPER_LIMIT; n += 2) {
if (Secretary.gcf(m, n) != 1) continue;
BabylonianRectangle br = new BabylonianRectangle(m, n);
if ((1.0d < br.getAspectRatio()) && (br.getAspectRatio() < phi)) {
if (Secretary.isHarmonic(br.getLongSide())) {
brs.add(br);
}
}
}
}
} // ブラーマグプタの公式
static void byBrahmagupta(ArrayList <BabylonianRectangle> brs) {
for (int p = 1; p < UPPER_LIMIT; p += 1) {
for (int q = p + 1; q <= UPPER_LIMIT; q += 2) {
if (Secretary.gcf(p, q) != 1) continue;
/*
if (!Secretary.isHarmonic(p)) continue;
if (!Secretary.isHarmonic(q)) continue;
*/
BabylonianRectangle br = new BabylonianRectangle(p, q);
if ((1.0d < br.getAspectRatio()) && (br.getAspectRatio() < phi)) {
if (Secretary.isHarmonic(br.getLongSide())) {
brs.add(br);
}
}
}
}
}
static void print( ArrayList <BabylonianRectangle> BRs ) {
int n = 0;
Iterator <BabylonianRectangle> iter = BRs.iterator();
while ( iter.hasNext()) {
BabylonianRectangle br = iter.next();
System.out.println(++n + " : " + br.toString());
System.out.println( Abaci.regulerNumberToString(br.getLongSide()));
}
}
static void print2( ArrayList <BabylonianRectangle> BRs ) {
int size = BRs.size();
if (size < 1) return;
int index = 0;
BabylonianRectangle work = BRs.get(index);
float arx = (float) work.getAspectRatio();
for (index = 1; index < size; index += 1) {
work = BRs.get(index);
float ary = (float) work.getAspectRatio();
System.out.println(index + ":" + (ary - arx) * 100);
arx = ary;
}
}
} いくらか足らんところもあるけど、
なんかレスがついたら返事する予定。
でもって適当に age てみる。 参考までに、プリンプトン322に書かれている値を載せておこう。
夏休みの自由研究的なナニカだと思ってくれ。
番号 : {短辺, 長辺, 斜辺} : 六十進表記の斜辺の平方と長辺平方の比(同、十進表記)
1 : {119, (120,) 169} : 01;59:00:15(≒ 1.9834027)
2 : {3367, (3456,) 4825} : 01;56:56:58:14:50:06:15(≒ 1.9491584)
3 : {4601, (4800,) 6649} : 01;55:07:41:15:33:45(≒ 1.9188021)
4 : {12709, (13500,) 18541} : 01;53:10:29:32:52:16(≒ 1.8862479)
5 : {65, (72,) 97} : 01;48:54:01:40(≒ 1.8150077)
6 : {319, (360,) 481} : 01;47:06:41:40(≒ 1.7851928)
7 : {2291, (2700,) 3541} : 01;43:11:56:28:26:40(≒ 1.7199837)
8 : {799, (960,) 1249} : 01;41:33:45:14:03:45(≒ 1.6927094)
9 : {481, (600,) 769} : 01;38:33:36:36(≒ 1.6426694)
10 : {4961, (6480,) 8161} : 01;35:10:02:28:27:24:26:40(≒ 1.5861225)
11 : {45, (60,) 75} : 01;33:45(≒ 1.5625)
12 : {1679, (2400,) 2929} : 01;29:21:54:02:15(≒ 1.4894168)
13 : {161, (240,) 289} : 01;27:00:03:45(≒ 1.4500173)
14 : {1771, (2700,) 3229} : 01;25:48:51:35:06:40(≒ 1.4302388)
15 : {56, (90,) 106} : 01;23:13:46:40(≒ 1.3871605) >>182
120 / 119 = 1.008(1)
90 / 56 = 1.607(15)
φ = 1.618
なんで、1 と 黄金比の間だって気がつかなかったのか、
そっちの方が不思議に思うんだがなぁ。 前にも書いたけど、
「11 番と 15 番が、なぜ原始ピタゴラス数ではないのか?」
っちゅーあたりを考えると、古代バビロニア人の
「美学」みたいなものに行き当たるので、
けっこう面白い。 …… というような話を、きょう
室井和男著/中村滋コーディネートの
『シュメール人の数学 ― 粘土板に刻まれた古の数学』
(共立出版。スマート・セレクション)の感想として
送っておいた。
反応が楽しみなんだが、結果は どうだろう。 思考停止の総当たり
#include<stdio.h>
#include<stdlib.h>
int pit(int A,int B, int C){
int a,b,c; int pit=0;
for(a=1;a<=A;a++){
for(b=a;b<=B;b++){
for(c=b;c<=C;c++){
if((a<b) && (a*a+b*b==c*c)) {
++pit;
printf("%d : %d * %d + %d * %d = %d * %d\n",pit,a,a,b,b,c,c);
}
}
}
}
return 0;
}
int main( int argc, char *argv[] ){
int a,b,c;
a = atoi(argv[1]);
b = atoi(argv[2]);
c = atoi(argv[3]);
pit(a,b,c);
return 0;
} >>187
おれも同じことをやったが、
演算子 ++ は、「構造体とかのサイズのあるものに
対するポインタに対して、sizeof() 分だけインクリメント
するのが本来の使い方」なんで、ポインタじゃない
整数値に対しては ++ じゃなくて +=1 を使うのが
礼儀正しい C プログラミングのありかただと思われ。 >>187
あと、これはまったく余計な話だが、
main() の戻り値は、昨今は void に
しとくのが流行らしい。
どうせレジスタに残ってる値を使うか使わないかの
話なんで、「どうでもいいや」っちゅー話はあるんだけどね。 プリンプトン322が45° から30° までの表だとすると、
{175, 288, 337}:1.369225
が入って 16 行になんないとおかしいと思うんだが、
どうだろう。
288 / 175 < √3 = 1/tan(30°)
だよなぁ? すまん。別スレの話題なんだが、そっちの方では
スレ違いなんで、「ピタゴラス数つながり」で、
このスレの残りを有効利用させてもらいたい。
m(_ _)m
まず、「ユークリッドの公式」(つーても、ユークリッドが
生まれる千五百年前には発見されていたのだが)という
ものがある。
【ユークリッドによる、原始ピタゴラス数の公式】
「互いに素な奇数 p, q (ただし、0 < p < q)から、一意に
原始ピタゴラス数を求める式がある。すなわち、
{X, Y, Z} = {(q^2 - p^2}/2, p×q, p^2 + q^2}
である。」 つぎに、Barning = Hall = 亀井の定理について説明する。
互いに素な奇数 {p, q} (ただし、0 < p < q)があったとき、
以下の三つの奇数の組 は、互いに素であり、すべて異なる。
1){p, q + 2p}
2){q, p + 2q}
3){2q - p, q}
【Barning = Hall = 亀井の定理】
すべての原始ピタゴラス数は、三分木によって、一意に表される。 【Barning = Hall = 亀井の定理の逆問題】
任意の原始ピタゴラス数から、最小の原始ピタゴラス数に
至る経路を求めるアルゴリズムを示せ。
【解】
前期(1)(2)(3)は、逆操作として、
0 < p < q のとき、
{p', q'} = {p, |q - 2q|} として表される。
ただし、p = 1, q = 3 のとき、
p' = q' = 1 となり、「0 < p < q 」の条件を満たさないため、
逆操作は行えない。このとき、
f(1, 3) = {3, 4, 5}
であり、Barning = Hall = 亀井の定理の示すところと
一致する。 この分野はよく知らないが、HallはMath GazzetteのClassroom Notesに
Barningはオランダ語のレポートと、主流の結果でもない
最近の論文見ると
http://nntdm.net/volume-18-2012/number-1/49-57/
みたいなのに掲載されてる。
あとは日本国内の研究者でBarning-Hallに興味持っている研究者を
調べて、そこの欧文紀要があれば掲載を頼む
英語で数学論文を書いた経験があまりないのなら
誰かに論文見てもらって直してもらわないと、論文の体裁をなしてないという理由で
rejectくらっても仕方ないよ
へぼい国内紀要でもそういう論文は結構投稿されていて門前払いを食らう
論文の校正まで編集部やrefereeはやってられないからね >>194
ありがとう。
「やべぇ! 後追いだったか?」と思って ちょっとビビったけど、
このレベルだったら細矢先生のほうが先に行ってる。
つーか出たのが二〇一四年の十月だったら、おれらがもう
逆問題を解いた後だ。
やっぱ、行列式使って解こうとすると、逆行列を考えたところで
行き詰まっちゃうんだろうな。おれらは そっちへ行ってないから、
どこで行き詰まるのか自体がよく解らんけど。
ついでに指摘しておくと、結城浩さんや紹介してくれた論文で
使ってる公式(こっちの方が有名だ)は、インドのプラーマグプタ
(0の発見者として有名)が書き残してるもので、
時代的にはユークリッドの式よりも何百年か遅いはず。
>>191 以降の議論は、そっちの式を使っても、同じ結論に
なる。p, q と m, n は、たしか和差の関係になるはず。
おれがプラーマグプタの式を使わなかった理由は、数式を
図で描こうと思うとダサいからだ(笑)
ユークリッドの式は、長方形の中に三角形一つと長方形
一つで描ける(なんせ、古代バビロニアには数式がねぇ!)
ので、壁に貼っておきたくなるようなシロモノだ。 (1)『すべての原始ピタゴラス数は、{3, 4, 5} に
U/D/A という三次の行列を掛けることで、一意に表される』
という性質を既知とする。
e=(3 4 5)とする(横表記だけど縦ベクトルのつもり)。
v=(x y z)を原始ピタゴラス数とする。
(1)によれば、eにU/A/Dを掛け算していくことでvが得られるので、
U^{-1}v, A^{-1}v, D^{-1}v のうち、原始ピタゴラス数が少なくとも1つはある。 >>195
おぉ、ありがとう。
とりあえず敷居が高いというのは理解したので、
小冊子を自費で出版して(マンガ同人誌と
おんなじようなモンだし)、心当たりに
片っ端から配って回る、とかいうのが
いちばん手っ取り早いかもしらんな。 ここで、U^{-1}vとA^{-1}vがともに原始ピタゴラス数になることはない。
なぜなら、もしこの2つが原始ピタゴラス数なら、
U^{-1}vとA^{-1}vそれぞれに(1)を適用して、
eにU/A/Dを掛け算していくことでU^{-1}vが得られる
eにU/A/Dを掛け算していくことでA^{-1}vが得られる
ので、
eにU/A/Dを掛け算してU^{-1}vを得たのちに、さらにUを掛ければ v が得られる
eにU/A/Dを掛け算してA^{-1}vを得たのちに、さらにAを掛ければ v が得られる
となり、eからvへの経路が2つあることになって、(1)の一意性に矛盾する。 同じようにして、U^{-1}vとD^{-1}vがともに原始ピタゴラス数になることはないし、
A^{-1}vとD^{-1}vがともに原始ピタゴラス数になることはない。
要するに、U^{-1}v, A^{-1}v, D^{-1}v のうち、原始ピタゴラス数は1つしかない。
よって、以下のアルゴリズムで、vからeへのルートが出力できる。
v=(x y z)を原始ピタゴラス数とする。U^{-1}v, A^{-1}v, D^{-1}v を計算する。
この中に、原始ピタゴラス数がちょうど1つだけあるので、それに対して同じ作業を繰り返す。
有限回の作業でeに辿り着くので、ここまでの経路を出力すればよい。 eに合計でm個のU/A/Dを掛け算してvに辿り着くなら、>>200のアルゴリズムでは
行列の積の計算が3m回必要になる。また、(x y z)が原始ピタゴラス数であるかどうかの判定には、
「x,y,zが負になってないか」「x,y,zに共通の因数がないか」を判定しなければならない。
前者は簡単に判定できる。後者はユークリッドの互除法で判定すれば高速に終わる。
(あるいは、U^{-1},A^{-1},D^{-1}の性質上、前者しか起きないのかも?)
全体としては、このようなアルゴリズムだけでも普通に速いんじゃないかという気がする。
たぶん、この分野ではもっと凄まじいアルゴリズムが希望されているのだろう。 次に、>>191-193のやり方だが、記述を端折りすぎていてよく分からない。
エスパーすると、たぶんこういうことを言いたいのだと思う。
v=(x y z)を原始ピタゴラス数とする。
x=(t^2 - s^2)/2, y=s×t, z=s^2 + t^2 となるような、
互いに素な奇数0<s<tを求める。いつでもこのようにすると、
原始ピタゴラス数は「互いに素な奇数0<s<t」に対応することになる。
すると、>>191-193によれば、U^{-1}v, A^{-1}v, D^{-1}v を計算することは、
互いに素な奇数0<s<tを用いて
(1) 0<s<t−2s
(2) 0<t−2s<s
(3) 0<2s−t<s
を計算することと同じことになるらしい(この順番で対応しているかは知らないが)。 sを基準にして書き換えると、(1),(2),(3)は
s∈(0,t/3)
s∈(t/3,t/2)
s∈(t/2,t)
と同じになる。最初に与えられているのは0<s<tつまりs∈(0,t)だから、
上の3つのうち2つ以上が同時に起きることはない。また、3つそれぞれが
U^{-1}v, A^{-1}v, D^{-1}v のどれかに対応している(らしい)。 よって、>>191-193のアルゴリズムは、たぶん次のようになるのだろう。
v=(x y z)を原始ピタゴラス数とする。
x=(t^2 - s^2)/2, y=s×t, z=s^2 + t^2 となるような、
互いに素な奇数0<s<tを求めておく。このとき、
(1) 0<s<t−2s
(2) 0<t−2s<s
(3) 0<2s−t<s
のうち2つ以上が成り立つことはないので、成り立つものは高々1つである。
もし成り立つものがあったら、それを 0<s'<t' として、今までの操作を繰り返す。
(1)〜(3)のどれもが成り立たなくなったら、その時点で e=(3 4 5) に対応しているので、
そこでやめる。ここまでの過程で、(1)〜(3)のうちどれが成り立ってきたのかという履歴が
U^{-1},A^{-1},D^{-1}の経路にきれいに対応している(らしい)ので、この履歴を出力すればいい。
これでいいのかは知らないが、もしこれでいいなら、
>>191-193のアルゴリズムはとても速いし、面白いと思う。 で、速いし面白いことは大体わかったが、
・ この程度なら、この界隈の人がとっくに見つけてたのではないか?
・ たとえば、>>194の論文で全く同じことやってないか?
という疑問点が生じる。 >>196
方法論として優れているのだろうと思うが
逆問題自体が解決されているとしたら、自分たちの手法の
どこが優れているか明確に書かないといけない
学術論文を書く基本的な訓練を受けてないように感じる
>>198
普通ならarXivに載せておくと良いでしょう
後から誰かとかち合っても記録に残る 次は、「番号」、「原始ピタゴラス数」、「p,q値」を列挙するプログラムです。
http://codepad.org/UhYptqy2
「番号」というのは、私が、原始ピタゴラス数の整理に便利だと考え、勝手につけた通し番号です。
(>>119でアップした、http://codepad.org/VKGibeHo にちょっと手を加えただけのものです)
この「番号」は、三分木構造のどの位置にあるのかを知るのに、便利な指標となっています。
番号に1を加え、3で割って切り捨てすれば、親の番号が判ります。
番号に1を加え、3で割った余りを求めれば、子の枝順位、つまり、長男(=0)、次男(=1)、三男(=2)を判定できます。
簡単に説明すると、番号1が始祖です。その子供が、2,3,4で、2の子供が5,6,7、3の子供が8,9,10、
4の子供が11,12,13、5の子供が、14,15,16、...となっています。
1が第一世代、2,3,4が第二世代、5〜13が第三世代で、14〜40が第4世代、、、(3^(n-1)+1)/2〜(3^n-1)/2 が第n世代 です。
簡単な構造なので、このような樹形図を初めて扱う方でも、各原始ピタゴラス数が、三分木構造のどこに配置されているか
簡単に図示できるでしょう。
この原始ピタゴラス数樹形図を、(p,q)の視点で眺めると、親を(p,q)としたとき、(p,2p+q)が長男、(q,2q-p)が次男、
(q,2q+p)が三男に相当しているようですね。 親のpq値(p',q')から、三人の子のpq値(p,q)を求める方法は、
(p,q)=(p',2p'+q'),(q',-p'+2q'),(q',p'+2q')
それぞれ、長男、次男、三男に相当
子供のpq値(p,q)から、親のpq値(p',q')を求める方法は
(p',q') =(p,q-2p) (3p<q の時;長男→親の変換に相当)
=(2p-q,p) (p<q<2p の時;次男→親の変換に相当)
=(-2p+q,p) (2p<q<3p の時;三男→親の変換に相当)
ですね。 >>193 では
>> {p', q'} = {p, |q - 2q|} として表される。
のようにされていますが、この場合、変換時、p',q'の大小をチェックして、
小さい方をp'、大きい方をq'としなければなりません。
しかし、変換式をここで書いたように固定すると、
p<q ⇔ p'<q'
が成立しますよ。 >>202 >>203 >>204
問題の本質を理解してくださってありがたいが、
そんなに難しいことは言ってないんだ (^_^!)
二つの互いに素な奇数 p, q (0 < p < q)があるとすると、
そこから原始ピタゴラス数 { x, y, z } が求まる。x と y が
決まれば z も決まるので、本質は x, y。
で、奇数のほうが pq、偶数のほうが (q^2 - p^2) /2 だから、
{x, y} から p, q が求まる。
ここで、p × q の長方形を考えて、そこから p × p の正方形を
二個取り去る(面積が 1 になったらそこで終わり。マイナスに
なった場合は「面積の絶対値」を取る)と、p' と q' が出て、
そこから原始ピタゴラス数を計算すると、それが「親」にあたる
原始ピタゴラス数になる。
ピタゴラス数を、「直角三角形の三辺」と考えるより、
「縦横と対角線の長さが自然数の比で表される長方形」
と考えたほうが素朴だろう(だいたい、日常で直角三角形と
いうのはほとんど見ないし)、というのが出発点。 あとは、「互除法と連分数は、同じ概念の二つの側面」
であって、1 + √2 = [2; 2, 2, 2, 2, …]、
φ = [1; 1, 1, 1, 1, …] なんで、
プリンプトン322が計算しているのはこのあたり、
みたいな話につながってく。 >>207
見てますよー。
連分数にしろ図的解法にしろ、あまり一般的な
手法とはいえないので、現在広く使われている
基本の手法とか考え方とかとの相性がよいと
思います。数学をちゃんとやってる人に
してみたら、「こっちの方がわかりやすい」
と思うんじゃないかな。 >>205
じつは、そのあたりはあんまり気にしてないんだ (^_^)
もともと、本筋は「プリンプトン322の解読」のほうなので、
「ひょっとしたら、三千八百年くらい前に、バーニングとホールの
定理を見つけてたんじゃないか?」と思ってる。
だけど、室井和男さんという「塾講師(数学)でシュメール学者」
の方が「プリンプトン322を完全解読!」と宣言して
いらっしゃったのね。で、「くそぅ、先を越されたか!」と
思ってたんだけど、最近になって、その室井さんの解読結果に
穴があったと知ってしまったので、「よし、勝ったぜ!」と
思ったのよ。
だけど、どこに発表したらいいのか分からんのよ。『数学セミナー』?
『日経サイエンス』?『子供の科学』?『ムー』? で、いま
途方に暮れているところ。 >>205
> この程度なら、この界隈の人がとっくに見つけてたのではないか?
おれもそう思ったんだが、ラプラス変換みたいに「いっぺん別の
世界に行って、また戻ってくる」というラプラス変換みたいな
やり口は、物理屋や工学屋のやりそうな手法で、昨今の数学屋さんには
不得手なんじゃないか?と思った。だから、そっち方面で独立に
見つけてる人は たぶんいる。
> たとえば、>>194 の論文で全く同じことやってないか?
・偶数辺と奇数辺があり、斜辺(対角線)は奇数
・偶数辺は4の倍数
・斜辺は ≡ 1(mod 4)
・偶数辺×奇数辺×斜辺は 60 の倍数
あたりで手詰まりになってる。自分でも引っかかったので、
英語だけど風情はよくわかる。
「奇素数が出るとするなら、どこに出るか?」とか
「(m, n で表したときに)奇数辺が平方数の和差になってる
ところから、何か掴めないか?」とかスケベったらしい
コトを考えると、だいたい捕まるというのが体験的に
謂える。
まぁ、原始ピタゴラス数のことだけを考えると簡単なんだが、
「平方数の和差と素因数分解の関係」とか考えると、
そっちの方へ行きたくなる気持はよくわかる。 >>191-193について。
互いに素な奇数0<s<tを任意に取る。
v_{s,t}=( (t^2 - s^2)/2, st, (s^2 + t^2)/2 ) (横表記だけど縦ベクトルのつもり)
と置くと、v_{s,t}は必ず原始ピタゴラス数である。逆に、(x y z)を原始ピタゴラス数とする。
このとき、(x y z)=v_{s,t}となるような、互いに素な奇数0<s<tが一意的に存在する。 Barning-HallのU/A/Dとv_{s,t}の関係について。
互いに素な奇数0<s<tに対して、s∈(0,t)が成り立つので、
s∈(0,t/3)またはs=t/3またはs∈(t/3,t/2)またはs=t/2またはs∈(t/2,t)
のいずれかが成り立つ。すなわち、
(1) 0<2s−t<s
(2) 0<t−2s<s
(3) 0<s<t−2s
(4) s=t/3またはs=t/2
のうち、1つだけが成り立つ。 (1)のとき、0<2s−t<sは互いに素な奇数である。
(2)のとき、0<t−2s<sは互いに素な奇数である。
(3)のとき、0<s<t−2sは互いに素な奇数である。
(1)が成り立つとき、U^{-1}v_{s,t}=v_{2s-t,s} が成り立つ(左辺を計算するだけ)。
(2)が成り立つとき、A^{-1}v_{s,t}=v_{t-2s,s} が成り立つ(同上)。
(3)が成り立つとき、D^{-1}v_{s,t}=v_{s,t−2s} が成り立つ(同上)。
(4)が成り立つとき、もしs=t/2なら、2s=tとなるので、tが奇数であることに矛盾する。
よって、s=t/3となる。このとき3s=tなので、s,tが互いに素であることから、
s=1となり、よってt=3となる。このとき、v_{s,t}=(4 3 5) となり、
これは最小の原始ピタゴラス数である。 >>216-218を踏まえると、こちらがエスパーした>>204のアルゴリズムは、
実際にこのアルゴリズムで正しいことが分かる。
そして、このアルゴリズムは確かに高速だ。行列の積を計算しなくても、
U^{-1}v_{s,t}=v_{2s-t,s}
A^{-1}v_{s,t}=v_{t-2s,s}
D^{-1}v_{s,t}=v_{s,t−2s}
によって、vの添え字s,tの単純計算だけで済んでしまう。とても面白い。 だが、s,tの単純計算の計算量を行列の積の場合と比べてみると、
パラメータの桁数に関するオーダーとしては、定数倍の差しかないことが
分かった(次からのレスで書くが)。なので、オーダーの観点からは、
行列の積を計算してもs,tで計算しても同じオーダーになってしまう。 まず、>>200のアルゴリズムの効率について。当初の>>201では
>(あるいは、U^{-1},A^{-1},D^{-1}の性質上、前者しか起きないのかも?)
と書いたが、2s-tやt-2sが負の場合も含めて
U^{-1}v_{s,t}=v_{2s-t,s}
A^{-1}v_{s,t}=v_{t-2s,s}
D^{-1}v_{s,t}=v_{s,t−2s}
を考察すると、実際に前者しか起きないことが分かる。
なので、>>200のアルゴリズムの効率は、>>201から次のように改良できる。
eに合計でm個のU/A/Dを掛け算してvに辿り着くなら、>>200のアルゴリズムでは
行列の積の計算が3m回必要になる。また、(x y z)が原始ピタゴラス数であるか
どうかの判定には、「x,y,zが負になってないか」を判定するだけでよい。 では、行列の積の計算1回にかかる計算量と、
x,y,zが負になってないか判定するのにかかる計算量は、
それぞれどうなっているか。
v=(x y z)を原始ピタゴラス数とする。x,y,zそれぞれを2進法で表したときの桁数のうち
最大のものをn_{x,y,z}と表す。zの桁数が一番大きいので、実際にはzの桁数がn_{x,y,z}である。
次に、U^{-1},A^{-1},D^{-1}の成分は±1,±2,±3しかないので、(x y z)にU^{-1},A^{-1},D^{-1}を
掛け算すると、n_{x,y,z}の定数倍の計算量にしかならない。
よって、行列の積1回の計算で、n_{x,y,z}の定数倍の計算量にしかならない。
また、「x,y,zが負になってないか」の判定は上位1ビットを見ればいい(そこが符号の役目を
している処理系なら)ので、これは定数時間で終わる。よって、>>200のアルゴリズムを
1操作分やると、n_{x,y,z}の定数倍の計算量にしかならない。
よって、>>200のような普通のアルゴリズムの時点で、かなり効率がよいと言える。 次に、>>204のアルゴリズムの効率について。
(x y z)=v_{s,t}と表して、s,tに対して操作を行うのだから、
n_{s,t}に対する計算量を考えればよい。
(1) 0<s<t−2s
(2) 0<t−2s<s
(3) 0<2s−t<s
しかないので、実質的にはt−2sだけ計算すればよい、これはn_{s,t}の定数倍の計算量で終わる。
n_{s,t}は、sとtの桁数のうち最大のものを表しているが、s<tだから、実際にはtの桁数がn_{s,t}である。
また、x=(t^2−s^2)/2, y=st, z=(s^2+t^2)/2 なので、t^2/2<z<t^2 が成り立つ。
よって、2n_{s,t}−2≦n_{x,y,z}≦2n_{s,t}となることが分かる。
よって、n_{s,t}=n_{x,y,z}/2, n_{x,y,z}/2−1 である。
よって、n_{x,y,z}を基準にしても、t−2sの計算はn_{x,y,z}の定数倍の計算量で終わる。 >>200では、(x y z)→(x' y' z')→(x'' y'' z'')→…
という形でピタゴラス数そのものを変形していくが、
>>204では、v_{s,t}→v_{s',t'}→v_{s'',t''}→…
としてs,tの方を変形していく。
一番最初は、v_{s,t}=(x y z)という関係がある。操作1回のあとの
(x' y' z')とv_{s',t'}については、v_{s',t'}=(x' y' z')という関係がある。
操作1回のあとの(x'' y'' z'')とv_{s'',t''}については 、
v_{s'',t''}=(x'' y'' z'')という関係がある。・・・
このように、>>200と>>204では、各ステップで同じ対象について計算が進んでいて、
各ステップで ”n_{s,t}=n_{x,y,z}/2, n_{x,y,z}/2−1”の関係式が成り立つ。 よって、>>200と>>204は、処理全体が終わるまで見ても
定数倍の違いしかないことになるので、オーダーとしては同じになってしまう。
もちろん、定数倍の部分は>>204の方がずっと小さいので性能が良いと言えるが、
オーダーの観点からは定数倍の差でしかない。 当初の話は、
「行列の積で逆問題を考えると有効な手立てがなくて
未解決問題だったが、連分数や図形で考えると効率よく解決する」
という話だったはず。しかし、行列の積で逆問題をやってる>>200でも、
v_{s,t}のs,tに対する単純計算だけで終わっている>>204でも、定数倍の違いしか
効率が変わらないので、行列の積で不満があるなら>>204でも不満があるはずだし、
逆に>>204で満足なら行列の積の>>200でも満足のはず。 「>>200では不満だが>>204なら満足」という立場を維持するには、
定数倍の部分がとても小さいから>>204で満足、と考えるしかない。
実務で使いたい人ならそういう立場でもいいのだが、
あくまでも理論的な未解決問題として考えたときには、
定数倍の違いしかないアルゴリズムを未解決問題だったとは普通は言わないので、
結局、この手の話で何かが未解決だったというのは考えにくい。
今も未解決のまま残っている問題は実際に存在するのかもしれないが、
少なくともこの話が未解決だったわけではないと思う。 そろそろ連投規制に引っかかる予感。
次に、v_{s,t}ではなく、別の公式を使った場合の>>204について。
互いに素かつ偶奇の異なる正整数0<s<tに対して
w_{s,t}=( t^2 - s^2, 2st, s^2 + t^2 )
と置くと、w_{s,t}は必ず原始ピタゴラス数である。逆に、(x y z)を原始ピタゴラス数とする。
このとき、(x y z)=w_{s,t}となるような、互いに素かつ偶奇の異なる正整数0<s<tが一意的に存在する。
v_{s,t}よりもこっちの方が有名な気がする。 Barning-HallのU/A/Dとw_{s,t}の関係について。
互いに素かつ偶奇の異なる正整数0<s<tに対して、s∈(0,t)が成り立つので、
s∈(0,t/3)またはs=t/3またはs∈(t/3,t/2)またはs=t/2またはs∈(t/2,t)
のいずれかが成り立つ。つまり、
(1) 0<2s−t<s
(2) 0<t−2s<s
(3) 0<s<t−2s
(4) s=t/3またはs=t/2
のうち、1つだけが成り立つ。 (1)のとき、0<2s−t<sは互いに素かつ偶奇の異なる正整数である。
(2)のとき、0<t−2s<sは互いに素かつ偶奇の異なる正整数である。
(3)のとき、0<s<t−2sは互いに素かつ偶奇の異なる正整数である。
(1)が成り立つとき、U^{-1}w_{s,t}=w_{2s-t,s} が成り立つ(左辺を計算するだけ)。
(2)が成り立つとき、A^{-1}w_{s,t}=w_{t-2s,s} が成り立つ(同上)。
(3)が成り立つとき、D^{-1}w_{s,t}=w_{s,t−2s} が成り立つ(同上)。
(4)が成り立つとき、もしs=t/3なら、3s=tとなるので、s,tの偶奇が一致してしまい、矛盾する。
よって、s=t/2となる。このとき2s=tなので、s,tが互いに素であることから、s=1となり、
よってt=2となる。このとき、w_{s,t}=(3 4 5) となり、これは最小の原始ピタゴラス数である。 よって、w_{s,t}を使っても、>>204と同じアルゴリズムが成り立つ。
計算した感触からすると、原始ピタゴラス数を2つの変数で表す公式が得られるたびに、
その公式に対応した>>204のアルゴリズムが必ずあるような予感がする。 >>144 にて私は、全てのピタゴラス数は、単位円上の一つの有理点に対応し、その有理点は
一つの有理数に対応可能だと言うことを指摘しました。
ピタゴラス数を探すと言うことは、有理数を探すことと同値です。
また、偶然にも私は、>>149 にて、「ユークリッドの互除法」は、
「(a と b の公約数)=(a と a-b の公約数) の積み重ねだ」とも指摘しました。
通常ユークリッドの互除法は最大公約数を見つける方法と認識されますが、最大公約数が1
だということになれば、「互いに素」であることを示す道具にもなります。
Mr.Motoさんの
>>{p', q'} = {p, |q - 2q|}
という変換は、pとqの最大公約数を求めるための、途中計算と考えることができます。
その際利用しているのは、「(a と b の公約数)=(a と a-b の公約数)」という内容。
ただし、これを、一歩ずつではなく二歩ずつ行っていると、考えるのです。
このようにして、(1,3)へ到達したならば、元々の奇数の組み合わせ(p,q)は、互いに素だったことを意味し、
同時にそれに対応する原始ピタゴラス数を表す有理数、指標となります。
このチェックの際辿った、(p,q)の変換経路は、ピタゴラス数を三分木構造に当てはめたときの、
樹形図上の経路そのものです。 親の方へ向かう変換は、最大公約数の計算or互いに素かどうかのチェックであり、
子の方へ向かう変換は、有理数の探索 or 作成に相当します。
ただ、2段飛びなので、全ての有理数を網羅することはできません。
分母分子とも奇数の場合しか回れませんから。
しかし、「ピタゴラス数の探索」という意味では、(奇数、奇数)の組み合わせだけで必要十分です。
一組のピタゴラス数に対応する単位円上の有理点は実は二つあります。(例:(5/13,12/13)と(12/13,5/13))
その有理点に対応する有理数は、一方は分母分子が両方とも奇数だし、もう一方は分母分子が、
偶数奇数混合型だからです。(先ほどの例では、1/5と2/3が対応)
(3,4,5)にUAD行列を施して制作される原始ピタゴラス数樹形図は、
(1,3)に>>209で記した変換公式を施して制作する有理数樹形図と同一で、お互いに変換可能です。
同様に、(1,2)に>>209で記した変換公式を施しても有理数樹形図ができますが、これらも、お互いに変換可能です。
そして、下二つの有理数樹形図で、全ての有理数を過不足無く網羅します。
UAD行列を使う場合も、(p,q)変換公式を使う場合も、プログラム的にはほとんど差はありません。
前者は同時に三数を扱う一方、後者は二数だけなので、この分高速になります。
ただし、「原始ピタゴラス数を順に表示する」というのが目的であった場合は、変換コストを払う必要があるため、
前者の方が速いかもしれません。特定の場合だけ表示するのであれば、後者の方が高速でしょう。 おお、すばらしい。
お二方に感謝する。
個人的には、「行列を使ってないので、
中学生にも理解できるだろう」という点から、
教育分野で利用してくれれば、と思う。
いわゆる「ユークリッドの互除法」は、
分数の約分・通分には便利なアルゴリズムだし、
それを単位格子に適用すると連分数や
フィボナッチ螺旋にする話題にも持ってゆける。
「単位円上に無限個の有理点が存在する」という
証明にもつながれば、「そもそも、一般式をどうやって
導出できるか?」(『数学ガール』にも出てくる)
という話にもなる。
これで少しでも数学嫌いが減ってくれれば嬉しい。 もうひとつ、「世界最古の都市文化」といわれる
古代バビロニア(「シュメールのほうが先じゃん」という
意見はあるんですが、そのあたりの議論は略)の時代に、
すでにピタゴラス数について研究していた人々がいた
(まぁ、長方形だし、ピタゴラス生まれてねぇし、みたいな
話はあるとして)、というのが分かっただけで面白いし、
コンピュータを利用して、「当時の人々が、どんなことを
考えていたのか」がうかがい知れるので、ソフトウェア
教育にも利用してほしいな、と思っています。
どうも、ありがとうございました m(_ _)m あ、あと、この件に関して、とくに権利とかを
主張するつもりはないので、
どこかで発表するとか論文にして公開する場合でも、
好き勝手にやっちゃってください。
「それも気づまりだな」という律儀な方は、遠慮なく
nsb14421@nifty.com
までメールしてください(アットマークは半角に)。
では。(^_-)b~*
(Maria & Mr.Moto) 大元のHallの論文が載ったMath Gazzetteは教育用の雑誌なので
投稿するといいんじゃないかなあ
まあ話を聞いていると、学術論文にまとめる訓練を受けてないから
敷居が高いと思ってるような気がする
論文を書くマニュアル作業を身につけるのも指導者がいないと難しい >>237
> まあ話を聞いていると、学術論文にまとめる訓練を受けてないから
> 敷居が高いと思ってるような気がする
> 論文を書くマニュアル作業を身につけるのも指導者がいないと難しい
いちおう学術論文にまとめる訓練は受けているんだが (^_^!)、
ジャンルと学会によってテイストが違うのよ。
「電気学会」と「電気通信学会」と「日本コンピュータ科学会」でも
違うし、「日本航空宇宙学会」もまた違うだろうし、「言語処理学会」と
「計量国語学会」でも違うと思う。
「数学教育協議会」とか「日本数学教育学会」とかにアプローチするのが
早道なんかな? 「古代バビロニアの数学粘土板」とか言っても、
なかなか通じないんだよな。都立雪谷高校の数学の先生にも訊いてみたんだが、
「同僚にも訊いてみたけど、ちょっと ……」みたいな話だった。 >>238
申し訳ないが、あなたは何か根本的にわかってないように思う
テイストが違うのはわかるが、あなたの数学の説明の仕方はこなれてない
問い合わせしている相手も間違ってる
大学のいわゆる数学科に属している教員に接触しましょう
「数学教育協議会」とか「日本数学教育学会」は別物
あなたの結果は大体わかったつもり、以下の雑誌を勧める
Math Gazzette
https://www.cambridge.org/core/journals/mathematical-gazette
Mathematics Magazine
https://www.maa.org/press/periodicals/mathematics-magazine >>239
> あなたの数学の説明の仕方はこなれてない
すまん (^_^!)
もともと航空屋でソフトウェア業界人なので、
「だって飛んでるじゃん」「だって動いてるじゃん」
で済ませてきたもんだから、わりとリクツは後回しなんだ。
演算子法のオリヴァー・ヘヴィサイドじゃないけど、
「数学は実験的科学であり、定義が先にくるわけではない」
「私が消化のプロセスを知らないからといって、ディナーを
断らなければならないのか?」っつースタイルなもんだから、
「数学的に厳密な論文の記述スタイル」っつーのに
なじめないところはある。 >>240
ヘヴィサイド同様に、適切な証明を書かないとrejectされます
それが数学の流儀ですので、自分はすごい結果を出しているのに〜
と言っても通りません
数学でも新規性が高くはなくても掲載する雑誌はあります
あなたが馴染めないのは自由ですが論文掲載までの手続きは変わりません >>241
つーか、数学における「行列の積」っていうのが、
ソフト屋における「配列の積」っていうのと
ちょっと違う、っていう問題があるのよね。
内積(スカラー積)と外積(ベクトル積)という
概念上の差があるのは分かるんだけど、
プログラマの頭にあるのは、「一次元配列と
二次元配列の積っていうのは、どうイメージしたらいいのか?」
っていう話なのよ。
{x, y, z}・{x', y', z'} = x*x' + y*y' + z*z'
みたいな頭があるんで、「縦ベクトルと横ベクトル」みたいな
イメージとかとは、ちょっと違う頭で考えてんですよね。 >>239 による批判があったので、真面目にお応えしたいと思います。
とりあえず、
v_{p, q} = { (q^2 - p^2) / 2, p * q, (p^2 + q^2) / 2 }
(p, q は、互いに素な奇数。ただし 0 < p < q)
と、
w_{m, n} = { n^2 - m^2, m * n, m^2 + n^2}
(m, n は、偶奇が異なる互いに素な自然数であり、0 < m < n)
というところから始めましょう。
このあたり、ツッコミがございましたら歓迎いたします m(_ _)m 早々にごめんなさい m(_ _)m
v_(p, q) = { (q^2 - p^2) / 2, p * q, (p^2 + q^2) / 2 }
(p, q は、互いに素な奇数。ただし 0 < p < q)
と、
w_(m, n) = { n^2 - m^2, m * n, m^2 + n^2}
ですね。
で、
v_(1, 3) = {4, 3, 5}
かつ
w_(1, 2) = {3, 4, 5}
であり、
「ピタゴラス数について、偶数項=偶数項、(最大ではない)
奇数項=奇数項、斜辺(あるいは対角線)項 = 斜辺項」あるいは
任意の自然数 n について「偶数項=偶数項 × n、奇数項=奇数項 ×、
斜辺項 = 斜辺項 × n」が成り立つときに、合同(≡)であるとする。
したがって、
v_(1, 3) ≡ w_(1, 2) ≡ {4, 3, 5} ≡ {3, 4, 5} ≡ {45. 60, 90}
である。 プログラマ的にいうと、
「a ≡ b」は、「equals(a, b) == true」であり、
「{3, 4, 5} = {4, 3, 5}」は、
「({3, 4, 5} == {4, 3, 5}) != true」だということです。 選手交代。
で、ここからが面白いんだ。
1)v_{p, q} = { (q^2 - p^2) / 2, p * q, (p^2 + q^2) / 2 }
(p, q は、互いに素な奇数。ただし 0 < p < q)
2)w_{m, n} = { n^2 - m^2, m * n, m^2 + n^2}
(m, n は、偶奇が異なる互いに素な自然数であり、0 < m < n)
という関数の、逆関数を考えよう。
{x, y, z} が原始ピタゴラス数だったら、(p, q) も (m, n) も
一意に(自然数として)求まるんだが、
{x, y, z} が「原始ピタゴラス数ではない、一般のピタゴラス数」
である場合、(p, q) や (m, n) は、自然数に落ちない!!!
これは、一度 自分で計算して確かめてみることをお奨めする。
つまり、V_(p, q) および W_(m, n) を(「引数が自然数である」
という条件を保ったまま)「原始ピタゴラス数ではない、
一般のピタゴラス数」に拡張しようと思うと、引数を一個増やさないと
いけない。つまり、V_(s, p, q) または W_(s, m, n) で表さないと
いけない。
これが、プリンプトン322の11番と15番が “原始” ピタゴラス数に
なっていない理由につながっていたりする。 おそらく、>>127 に大きな勘違いがあるのが見えます。
>> 脱帽します。私は、Barning と Hall の業績を知ったうえで、
>> その逆問題(任意の原始ピタゴラス数を、{3, 4, 5}と
>> U, D, A の積で表すアルゴリズムを求める)が未解決
>> だというのを知り、それを連分数によって解決してから、
>> 図形的な解法を思いつきました。
とありますが、「任意の原始ピタゴラス数を、{3,4,5}とU,D,Aの積で表すアルゴリズムを求める問題」
は簡単に解決しています。「解決」と書きましたが、問題設定と同時に解かれるような問題で、
「解決」という言葉は、不適当と感じるような内容です。
私の一番最初の投稿 >>119 のプログラムの中に、原始ピタゴラス数を与えると、「番号」を返す
関数がありますが、それが、具体的な手順を与えるプログラムになります。
UDAが書かれていないじゃないかというかもしれませんが、「番号」にその情報が詰め込まれています。
番号は三分木構造の住所を表す指標となっています。住所が分かれば、(3,4,5)と、どのような経路を経て
あるいは、長男、次男、三男の誰を通して、あるいは、U,D,Aのどれを適用して、その原始ピタゴラス数
と繋がっているか、一意に決定されます。具体的な手法は >>208 に記してあります。
「逆問題」が、ここで書かれている内容であれば、未解決であるはずがありません。そう仰っていた方が間違っている
のかもしれませんし、未解決としている部分を勘違いされているかもしれません。整理を望みます。 >>119は a^2+b^=c^2下での恒等式 (-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2を利用した
原始ピタゴラス数に関する各種プログラムでしたが、今回は
p/q → p/(2p+q) , q/(-p+2q) , q/(p+2q)
という変換が、有理数生成法として完全系であることを利用したプログラムとなっています。
多くの場面で前回のものを流用し、サンプルなどは同じ物を使っていますが、エンジンは別物です。
前回のエンジンは、事実上UDA行列の利用と同じで、原始ピタゴラス数の三数を媒介しているのですが、
今回媒介しているのは、有理数p/qで、整数二つです。
http://codepad.org/W400rZjo
4種類の内容をまとめて走らせています。
・p,qを小さい方から変化させ、pq値、ピタゴラス数、番号を表示
・番号順にpq値、ピタゴラス数を表示
・与えられたピタゴラス数に対し、pq値、番号を表示
・与えられた番号に対し、pq値、ピタゴラス数を表示
手抜き感満載なのはご了承ください。 >>248
任意の原始ピタゴラス数があったとして、
それに U^(-1) ・ A^(-1) ・ D^(-1) をそれぞれ
掛けて、そのうち意味のあるものが「親」にあたるので、
e に到達するまで その操作を繰り返せばいい。
そういう意味では、そもそも「逆問題」というものは
存在しない、とも言えます。
で、細矢 治夫先生が、『トポロジカル・インデックス』の中で、
Barning=Hall の定理の「大きな泣き所」としているのが、
この「試行錯誤が必要」という点でした。
「試行錯誤ではなく、アルゴリズムの形で、ストレートに解けないか?」
という問題意識があり、「そういう方法があるはずだ」という予想が
ありました。ところが、「行列」という視点で問題に取り組むと
なかなか面倒臭いことになる。
それを、「互いに素であり、相異なる自然数の組」からなる
空間に移動し、そこから {1, 2} あるいは {1, 3} へ移動する
ルートを探すという方法だと、「大きい方から小さい方を二回
引いて、絶対値を取る」だけでルートが見つかってしまう。
で、「大きい方から小さい方を引く」という操作は、「ユークリッドの
アルゴリズム」として知られているものです。現在は「互除法」と
呼ばれ、「大きい方を小さい方で割った余りを求める」と捉えられて
いますが、ユークリッド自身の記述によれば、「互減法」とも
いうべきものです。
ですから、「未解決問題を解いた」というより、「素朴な証明を
提出した」くらいの話になるでしょうか。 試行錯誤は必要ありません。
>>119の三つ目のプログラムをご覧ください。
q[0]=- p[0]-2*p[1]+2*p[2];
q[1]=-2*p[0]- p[1]+2*p[2];
q[2]=-2*p[0]-2*p[1]+3*p[2];
if(q[0]<0){
q[0]=-q[0];
if(q[1]<0){q[1]=-q[1];r=1;}else{r=-1;}
}else{
if(q[1]<0){q[1]=-q[1];r=0;}else{return 0;}
}
return 3*g(q)+r;
と書きました。q[0]の正負、q[1]の正負で、rの値を -1,0,1 と変化させています。
これが将に、長男、次男、三男の見極めなんです。
これは、(-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2 を利用して新しい
ピタゴラス数を生成させる際、a→-a という置き換えを使ったか、
b→-bを使ったか、両方の符号反転を使ったかに対応します。 >>250
で、ここに至る過程で、「 q / p を連分数展開したらどうなるか?」と
思いついて、「U・D・A というのは、そのときのどういう操作に
対応しているのか?」を考えて、そこに 2 が出てくるということに
気づきました。奇数+偶数=奇数、偶数+偶数=偶数 ですから、
「互いに素で相異なる二数に対して、『大きいほうから小さい方を二回引く』
という操作を行なっても、『互いに素である』という性質は保存され、
『ともに奇数』『偶奇が異なる』という性質も保存される」という
ことになります。
問題は、q - 2p がマイナスの場合です。このとき、「長方形から
正方形をふたつ取り去ったときに、面積がマイナスになってしまう」
ということになるわけですが、それも図形的に解釈できました。
「じゃあ、その逆操作は?」ということになり、「それは三通りある」
ので、U ・ D ・ A と比較してみると、それぞれが対応していることが
わかりました。
「意外に気づかんもんだなぁ」と思ったんですが、しつこいようですが
プリンプトン322は五十年以上未解読で、いろんな人があーだこうと、
みんなそっちへ行っちゃうということは、あるんだなぁ、と。
それで、「こういう面白い話があるんですよ」と、お知らせしようと
思いました。 プリンプトン322は、古代バビロニアの数学粘土板です。
おおむね三千八百年前、ハンムラビ王の治世のころに
作成されました。文書のスタイルとしては、当時の
公文書のスタイルで書かれていて、書かれている文字については、
室井 和男先生が解読されています。詳しくは、中村滋『数学の花束』を
どうぞ。読んだことないけど。
で、そこには15個のピタゴラス数が記されています。 この15個の数値に関しては諸説あるんですが、
現時点ではエレノア・ロブソンという人(あたし、
会ったことないけど、この人嫌い)の説です。
「プリンプトン322は、初期見習いのための
計算の課題である」というものです。
これとは別のマイナーな説ですが、「これは
三角関数表である」というのがあります。
オットー・ノイゲバウアー先生と室井和男さんが
この説を支持しています。
すなわち、
・三角関数なので、直角三角形(あるいは、単位円上の
有理点)の表である。
・公式としては W_(m, n) を使った。
・範囲としては、45° から 30° まで。
・だいたい一度ごとに、計算するときに便利な値を
選んだら、この15個になった。
ということです。けっこう説得力がありますね。 ところが、W_(m, n) を使って原始ピタゴラス数を
計算すると、うまくこの15個が出てこないんですよ。
「なんか、これ違うんじゃない?」と思ってよく見ると、
短辺と長辺の比が、1.0 と 1.618 の間に入ってるんですよね。
「これ、三角関数じゃなくて、長方形なんじゃない?」と。
つまり、「正方形と黄金長方形の間にある、縦横と対角線の
長さが、自然数の比で表現できる長方形の表」なんではないかと。
ところが、それにしても m, n の値が半端なのが気に入らない。 そんでもって、「これは公式が違うんじゃない?」と
思っていろいろ調べているうちに、V_(p, q) の式に
辿り着きました。そこで計算してみると、
まぁ、なんということでしょう。
正方形と黄金長方形の間にある、q < 180 のときの
V_(p, q) で表される15個の長方形が、プリンプトン
322に記されている 15 個の数と、一致するでは
ありませんか! ただ、ここで喜ぶのはまだ早い。45° から30° というと、
1.0 から √3まで、ということになりますよね? だったら、
その範囲でも15個になるかもしれません。で、計算してみたところ、
1.618 と 1.7320508 の間に、一個、解があるではありませんか。
あの連中(もはや古代バビロニア神殿の書記たちは他人ではありません。
心の友です)が、これを見逃すわけがない。やっぱり黄金比だ!
謎はあと二つ。
1)#11 は 15 倍、#15 は 2 倍されていて、原始ピタゴラス数になっていない。
2)粘土板の向かって左端が削られている。
なぜでしょうか?というものです。 ここから先は、あたしたちの妄想です。
#11 の長辺には、60 という数字が出てきます。で、
60 には、1, 2, 3, 4, 5, 6 が約数として出てきます。
そこで、#15 に着目すると、その面積に
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 が出てくるんです!
うん、キミらはそういうのが好きなんだね? わかるわかる。 じゃあ、最後の謎です。
プリンプトン322は、最初 1;φ で作られていたんだと思います。
「なんかダサくね?」「そもそも、長すぎて割れやすそうだめ」
「だったら、削っちまっていいんじゃね? 小数点のトコしか
使ってねぇから、無視できるべ」「んだな。」
ということで、1 : √2 にしちゃたんです。
「ほーら、カッコいいっぺ」「ちょうど、パスポートサイズだなや」
「SONY のハンディカムだなや」「まだ売ってねぇだよ(wwwww」
となると、削られてしまった数値の役割はなんでしょう?
そう、「整列キー」だったんですね。
つまり、プリンプトン322の正体は、「古代バビロニアの算額」
(あるいは、その試作品)だったんです。 >>250
申し訳ありませんが石版については興味が無く、>>251に続く内容になります。
「これこれの行列を使えば、新しいピタゴラス数を作ることができる」という
ことに気づいた人たちの中には、いくつかの原始ピタゴラス数の組み合わせだけで
UDA行列に到達した方々がいるようです。
そのような内容の文献あるいはサイトを見たことがありますから。
確かにそのような経緯でUDA行列に到達したならば、>>251で書いたような事には
気づかなく、試行錯誤が必要と考えるかもしれません。
が、私は、導入部分が、(-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2 であること。
a単独、b単独、a,b両方の符号反転により生成される恒等式が、UDA行列と同内容になる事等を
>>120等で説明を与えているし、>>119ではプログラムで具体的に示してもいます。
逆変換すれば、負になるものが現れ、それを見極めれば、UDAのどの変換に相当するか
見極められるというのは、全く自明で、「解決」が必要なものに等ならないのです。
あなたは、これらに触れていたはずです。ならば、あなたは「逆問題」など、すでに解決済み
だということに気づくべきだったのではありませんか?
「逆問題」など無い、あるいは、解決済みと言うことでよろしいですね。 >>260
> 「逆問題」など無い、あるいは、解決済みと言うことでよろしいですね。
そういう解釈で結構だと思います (^_^)
> あなたは、これらに触れていたはずです。ならば、
> あなたは「逆問題」など、すでに解決済みだということに
> 気づくべきだったのではありませんか?
あえて無視した、と解釈していただいても宜しいかと (^_^)
この問題について問題提起をされた細矢先生は、有機化合物の
構造決定と検索の方面で有名な方でして、「図式化による直観的な
把握」というものを重視していらっしゃいました。
現在、高校数学の新課程において行列は教えられていませんので、
これは「大学生以上でないと理解できない」ということになって
しまうんですが、大学の教養課程では「高校数学の復習」以上の
ことはなかなかできない(そもそも、高校数学は受験数学に
偏りがちであり、就職組はそもそも数学なんか やる気がない)ので、
そのあたりは何とかしたい、と思いました。
いわゆる「ベルトラン予想」に対するチェビシェフによる証明は
ガンマ関数を使った高度なものでしたが、のちにポール・エルデーシュが
高校生のときに初等的な証明を与えました。一松 信先生は、エルデーシュによる
初等的な証明をさらに解きほぐしたものを発表しました。
大学生のときに「ベルヌイの定理」が理解できなくて悩んでいたのですが、
航空業界から離れてから「なんだ、要するにエネルギー保存則じゃないか」
と気づいたこともあって、「証明はすべからく簡明でありたい」と
思っています m(_ _)m >そういう解釈で結構だと思います (^_^)
>あえて無視した、と解釈していただいても宜しいかと (^_^)
こりゃあダメだな、研究発表の何かがわかってない
「知られている証明の別照明を与えた」と最初からいえば良かったのに
ま、何言ってものらりくらりかわすだけ
Webで書くなら勝手にすればいいが「数学会は俺の研究を評価しない」とか言うなよ ×「知られている証明の別照明を与えた」と最初からいえば良かったのに
〇「現在知られている証明とは違う、別証明を与えた」と最初からいえば
良かったかもしれないが、それは後付けの理由になってしまう。
それは「いわゆる “数学者”」に受け入れられないかもしれない、
と後から思ったんだけど、みたいな話を延々としても不毛だと思うんで、
「アイゼンシュタイン三角形」とか、「ヘロンの公式って、
内接円で考えるのはいいんだけど、数論的には別の切り口が
あるんじゃねぇ?」みたいな話に、教育的には
持ってゆきたいんだが。 >>261
> ま、何言っても のらりくらりかわすだけ
「真向正面から、ぶっ潰す」っていうスタイルがお好みなら、
ちょっと表(しかるべき学会とか)に出ていらっしゃって
下さらない? お呼びいただけたら参上しますわよん ♡
> Webで書くなら勝手にすればいいが「数学会は俺の研究を
> 評価しない」とか言うなよ
Web には書いてございます(笑)。
(NG ワードに引っかかっちゃったんで、
『プリンプトン322 BackLog』でググってください)
数学会はどうかともかく、日本ソフトウェア科学会の自然言語処理の
分科会は、うちらの研究を正しく評価してくださいませんでした
(それで所長が社会的ひきこもりに なっちゃったんだよ!)。
このあたり、日本語の形態素解析システムに関する、いろいろ薄らぐらい
話があるんで、自分からは言いませんが、「説明しろ!」というのなら、
いろいろ言っちゃうぞ?
よろしければ、
『日本語処理技術者の憂鬱 』
https://medaka.5ch.net/test/read.cgi/prog/1537503146/
へどうぞ。 >>260
> 石版については興味が無く
キリスト原理主義者の前でそれ言うと、
殺されかねないから用心したほうがいい。
「十戒」を記したのもタブレットだし、
「陶板」も「粘土板」もタブレットだ。
「かれこれ四千年前から、数学というものが
存在し、それが現在に至るまで連綿として続いている」
ということに対する敬意は、表明しておいたほうがいいぞ。 天下り的にUDA行列を与えられ、これらをピタゴラス数に掛けていけば、
いくらでもピタゴラス数ができるよと教わっただけの人に対し、
てきとうな原始ピタゴラス数を示して、これが最後に掛けられたのが、U行列なのか、
D行列なのか、A行列なのかの見極めろと問えば、窮するのも仕方ないかもしれない。
その時、ピタゴラス数を、pq変換し、q<2pなのか、2p<q<3pなのか、3p<qなのかで
判断可能だというのは、立派な視点を与えたと思います。
(それぞれ、正方形二つを除いたとき、面積が負、長短辺入替、長短辺維持に対応)
しかし、UDA行列の実態は、(-a-2b+2c)^2 + (-2a-b+2c)^2 = (-2a-2b+3c)^2 の
符号反転変換だと知っている人に取ってみれば、全く自明な問いで、なぜ、困ってるの?
というレベルの問いなのです。
兎に角、解決したということで、一安心です。
それよりも、1/2、および、1/3 からスタートする有理数変換、
p/q → p/(2p+q) , q/(-p+2q) , q/(p+2q)
が、有理数生成法として、完全系(重複することなく、全てを表現可能)を成している
という事は私にとっては新鮮でした。
よく考えれば、全ての原始ピタゴラス数が三分木構造に埋め込まれているということの
焼き直しに過ぎないのですが、面白い知識を得た気がしてます。 >>265
申し訳ありませんが、私が>>260にて「石版」と書いたのは、
>>252 の後半から >>259まで続く 一連の プリンプトン322 のお話です。
石版ではなく、粘土板だったようです。申し訳ありません。
しかし、あるいは、だからといって、意図的な曲解や、脱線はおやめください。 >>267
べつに、お気になさらずに。
いわゆる「十字架」も、本来は「スタウロス(杭)」
でして、「『十字架』という訳語は間違いだ!」という
意見もあります。
英語では、「ステーク」て、競馬のレースで「ステークス」と
いうのは、そこに由来しています。
むしろ、四千年以上の昔から「タブレット」として
利用されていたものが、現代においてスマートフォンとして
実現され利用されていることを、寿(ことほ)ぎたいと
思います。
つーワケで、スマホはパスポートサイズにしてくんねぇかなぁ?
と思うんだけど、どうかね。
あと、いわゆるタブレットは、A4 サイズとか B5 サイズ あたりに
してくれるといいと思うんだけど、じゃあ、縦横のドット数は
(当然、自然数だわな?)どうすんのよ、っていう話はあると思うん
だけど、「じゃあ、あんたはどう思うのよ」っていう話は、この
スレの話題として、あっていいと思う。
B4 サイズのタブレットって、正直しんどいと思うんだけど、
キーボードやマウスと WiFi でつながってりゃいいのかなぁ?
と思うと、他の人の意見も聞きたいと思う。 古代バビロンの粘土板、YBC7289 に√2の値が詳しく
記されていた、っていう話はあるんだが、
それを具体的にどうやって計算したのか、っていう話は
とりあえず現代において解明されていないんだよ。
古代バビロニアでは、「開平法」というものが、おそらく
知られていなかったらしくて、現在「バビロニアの開平法」と
呼ばれているものは、「割り算を行なって、除数と商の平均値を
求める」の繰り返しだと云われている。
「いや、『あらゆる数の平方根』を求めるアルゴリズムは
知られていなかったけど、白銀比とか黄金比については、連分数
との関連で、知られていたんじゃねーの?」と、おれらは考えている。
そのあたり、「どう思う?」っていうのは、いろんな人の意見を
聞いてみたいと思う。 唐突だが、√3の連分数展開って、どうなるんだ?
プリンプトン322の上限値が√3だったとしたら、
連分数で きれいに表されるはずだと思うんだが。 スレ違いではあるが、ピタゴラス数関連ということで
ご容赦願いたい。
プリンプトン322の計算を、コンピュータで
やりなおした結果がこれ。
0 < p < q < 180
長辺 / 短辺の比 AR は、1 < AR < φ。
1 : (p = 7, q = 17) {119, 120, 169}:1.9834027
2 : (p = 37, q = 91) {3367, 3456, 4825}:1.9491584
3 : (p = 43, q = 107) {4601, 4800, 6649}:1.9188021
4 : (p = 71, q = 179) {12709, 13500, 18541}:1.8862479
5 : (p = 5, q = 13) {65, 72, 97}:1.8150077
6 : (p = 11, q = 29) {319, 360, 481}:1.7851928
7 : (p = 29, q = 79) {2291, 2700, 3541}:1.7199837
8 : (p = 17, q = 47) {799, 960, 1249}:1.6927094
9 : (p = 13, q = 37) {481, 600, 769}:1.6426694
10 : (p = 41, q = 121) {4961, 6480, 8161}:1.5861225
11 : (p = 1, q = 3) {3, 4, 5}:1.5625
12 : (p = 23, q = 73) {1679, 2400, 2929}:1.4894168
13 : (p = 7, q = 23) {161, 240, 289}:1.4500173
14 : (p = 23, q = 77) {1771, 2700, 3229}:1.4302388
15 : (p = 5, q = 9) {28, 45, 53}:1.3871605 同じことを別の式で計算すると、
こうなる。
0 < m < n < 180
長辺 / 短辺の比 AR は、1 < AR < √3。
1 : (m = 5, n = 12) {119, 120, 85}:0.5017361
2 : (m = 27, n = 64) {3367, 3456, 2457}:0.5054321
3 : (m = 32, n = 75) {4601, 4800, 3424}:0.50884444
4 : (m = 54, n = 125) {12709, 13500, 9666}:0.512656
5 : (m = 4, n = 9) {65, 72, 52}:0.52160496
6 : (m = 9, n = 20) {319, 360, 261}:0.525625
7 : (m = 25, n = 54) {2291, 2700, 1975}:0.5350652
8 : (m = 15, n = 32) {799, 960, 705}:0.53930664
9 : (m = 64, n = 135) {14129, 17280, 12736}:0.5432236
10 : (m = 12, n = 25) {481, 600, 444}:0.5476
11 : (m = 40, n = 81) {4961, 6480, 4840}:0.5578799
12 : (m = 1, n = 2) {3, 4, 3}:0.5625
13 : (m = 81, n = 160) {19039, 25920, 19521}:0.56719726
14 : (m = 64, n = 125) {11529, 16000, 12096}:0.571536
15 : (m = 25, n = 48) {1679, 2400, 1825}:0.5782335
16 : (m = 8, n = 15) {161, 240, 184}:0.5877778
17 : (m = 27, n = 50) {1771, 2700, 2079}:0.5929
18 : (m = 2, n = 7) {28, 45, 18}:0.16
19 : (m = 9, n = 16) {175, 288, 225}:0.61035156
20 : (m = 72, n = 125) {10441, 18000, 14184}:0.620944
あぁ、すっきりした。んじゃ。
……と思ったら、最後の比のところが違ってるな。まあいいか。
このスレの住民なら、意味するところは わかるだろ。
そのうち気が向いたら、プログラム直してまた書いとくし。 >>272
こっちが正確な値です。どーも失礼いたしましたー
1 : (m = 5, n = 12) {119, 120, 169}:1.9834027
2 : (m = 27, n = 64) {3367, 3456, 4825}:1.9491584
3 : (m = 32, n = 75) {4601, 4800, 6649}:1.9188021
4 : (m = 54, n = 125) {12709, 13500, 18541}:1.8862479
5 : (m = 4, n = 9) {65, 72, 97}:1.8150077
6 : (m = 9, n = 20) {319, 360, 481}:1.7851928
7 : (m = 25, n = 54) {2291, 2700, 3541}:1.7199837
8 : (m = 15, n = 32) {799, 960, 1249}:1.6927094
9 : (m = 64, n = 135) {14129, 17280, 22321}:1.6685523
10 : (m = 12, n = 25) {481, 600, 769}:1.6426694
11 : (m = 40, n = 81) {4961, 6480, 8161}:1.5861225
12 : (m = 1, n = 2) {3, 4, 5}:1.5625
13 : (m = 81, n = 160) {19039, 25920, 32161}:1.5395334
14 : (m = 64, n = 125) {11529, 16000, 19721}:1.5192103
15 : (m = 25, n = 48) {1679, 2400, 2929}:1.4894168
16 : (m = 8, n = 15) {161, 240, 289}:1.4500173
17 : (m = 27, n = 50) {1771, 2700, 3229}:1.4302388
18 : (m = 2, n = 7) {28, 45, 53}:1.3871605
19 : (m = 9, n = 16) {175, 288, 337}:1.369225
20 : (m = 72, n = 125) {10441, 18000, 20809}:1.3364645 このスレの >>116 以降にチョッカイを出していたのだが、
いちおう >>273 までで役割は果たしたと思う
(>>1 も、たぶん >>267 あたりの時点で、やり尽くした感が
あると思う)ので、あと 700 エントリくらいは、適当に埋めちゃう
ことにする。
そんなわけで、次スレに関しては、雑談の一部として
議論してもらって、なんかしらテーマがあったら
別途立てていただきたいと思うが、その点に関しては
「>>1 氏はどう思う?」とお伺いを立てておきたいが、
まぁオレが立てたスレでもないんで、
オレが口を出すような話でもない。
とりあえず、プリンプトン322に関しては、いわゆる
ピタゴラス数に関する議論の出発点としての
歴史的な意味があるので、雑談っぽく埋めてゆきたいと
思っている。たぶん連投になっちゃうだろうけど
(質問等に関しては、「流れをぶった切ってしまって申し訳ない」
みたいな配慮はしなくていい。そもそもが「荒らされたんで立て直した」
みたいなスレでもあるし。だよな? >>1)
つーコトで、よろしく。苦情等があれば(つーか、>>1 氏に
してみれば、途中からオレが脱線してるんで、不本意な部分は
あると思うので、そこは言ってもらえると ありがたい)、
適宜書き込んでほしい。 とりあえず、
ID:6r9Vk7wm 氏と
ID:Z3ZHtaSh 氏には、
非常に感謝している。
ありがとう m(_ _)m これ面白いね。計算が間違う方が面白いんじゃないの、数学の癖というモノが
反比例の高次関数だから。 左利きの数学者のつぶれ方って面白いよ。数字は右利き用だから、迫害され、
才気も届くことはない。 ところで、>>271 の件なんだが、
> 11 : (p = 1, q = 3) {3, 4, 5}:1.5625
つーのは、倍率を M として、
「11 : (p = 1, q = 3:m = 1, n = 2:M=15) {45, 60, 75}:
[(対角線の二乗 / 長辺の二乗)の六〇進数による表記](≒1.5625):
[長辺 / 短辺 の比の値(この場合は ≒1.33)];
みたいに表しときゃいいのかね?
「授業で使うんなら、そっちの方が便利」っちゅー気がするんだが。
式としちゃあ、V_(p, q) と W_(m, n) でいいとは思うんだが、
エウクレイデスとプラーマグプタだと思うと、
E(p, q) と P(m, n) というのが粋っちゃあ粋だと思うんだが。 >>202
申し訳ない。
> 互いに素な奇数 0 < s < t を用いて
はちゃんと読んでいるんだが、
いろいろ試行錯誤する過程で
なんとなく p と q を使っていたので、
>>278 では、それを踏襲しただけだ。
「尊重しない」といった意味合いはないので、
気に障られたら勘弁していただきたい m(_ _)m >>277
> 左利きの数学者のつぶれ方
久留島 喜内 (wwwww てなワケで、
1)E(p, q) = { (q^2 - p^2) / 2, p * q, (p^2 + q^2) / 2 }
(p, q は、互いに素な奇数。ただし 0 < p < q)
2)P(m, n) = { n^2 - m^2, 2 * m * n, m^2 + n^2}
(m, n は、偶奇が異なる互いに素な自然数であり、0 < m < n)
という話になるのだが、困ったことに、こう定義すると、
E(p, q) = {偶数項, 奇数項, 斜辺(=対角線。奇数)}
P(m, n) = {奇数項, 偶数項, 斜辺(=対角線。奇数)}
という、いやらしいコトになる。古代メソポタミア的な
気分でいうと、
{短辺, 長辺, 対角線}
みたいな形に まとめたい気がするのだが、そうなると
{p, q} および {m, n} について「どういう条件で
『偶数辺 < 奇数辺』あるいは『奇数辺 < 偶数辺』が
成り立つか」っていう話になるので、これが また
そこそこ面倒臭い(つーか、高校生でも解るような
簡単な話なんだが)コトに なるので、これは これで
授業に使えるネタでは あると思う。 うちのマヌケでズボラな同僚が、いろいろと
お騒がせして申し訳ございません m(_ _)m
プリンプトン322の範囲が「45°から30°の
間」(1 < AR < √3)なのか「1 < AR < φ」なのかに
ついては {175, 288, 337} という反例が出たのでいいとして、
使われた公式が P(m, n) なのか E(p, q) なのかに
ついては決着がついていませんでした。
ところが、>>273 の #14 をごらんください。
{11529, 16000, 19721} という値があって、これは、
(m = 64, n = 125) に相当します。となると、「0 < n < 125」
という条件を考えると、#13 と #14 が消えて、プリンプトン322の
表の値に近づきます。ですが、それをやってしまうと、#4 の
{12709, 13500, 18541} (m = 15, n = 125) も落ちてしまい、
「プリンプトン322は、14行でなければならない」ことに
なってしまいます。
以上、結果報告でございました。 >>282
うっかり「久留島 喜内」でググッたら、
「オイラーの φ 関数」とかいう
「互いに素な自然数の個数」みたいなのに
引っかかってびっくりした。 >>288
おまえ煩(うるさ)いんだよ。
「左利き」に「酒呑み」っていう意味があって、
久留島 喜内が「日本三大算法家」の一人で、
酒好きで、詰将棋作家として有名とか、
そのあたりは丁寧にコメしとけよっ!
うちの評判を落とすじゃないかっ!
ただでさえ他スレで評判落としてるんだから ほんとにもぅ … それでも参考程度だよ。その雰囲気、のその人。左脳の数学脳より、物理も合わないし、古典力学
古典数術 じゃないけど、かなりレアものを絞って、あとは多読多解に合わせないとなあ。 >>285
すまんが、どのエントリに対してコメしているのか
判別しやすいように、アンカーを つけるように
心掛けては いただけまいか。
「どう対応したらいいんだろう?」ってな話があって、
所内が騒然としているので。 特定の誰かにレスするのは古い世代で、不特定の人に、ある分量ずつとか仕わけて
書いていることが多い。流れを読んで、次にまた変化してつながるように。
かといって全員ほど欲張ってはいないけど。 >>287
すまんが、うちらは自閉なんで、
空気が読めないんだ。
ひょっとしたら、これは “いじめ” なのか? “いじめ” なんだな?
数学板で、そういうことを やるような卑劣な輩がいるのか?
あぁ、そうですか。いいじゃないですか。結構ですよ。
ネット社会っていうのは、そういうもんなんですね?
じゃあ、そんなものは世の中から無くなってしまえばいい。
荒らすよ? 荒らしちゃいますよ。ええ、荒らしてやろうじゃないですか。
(読み筋は、『子供たちを責めないで』)
…… てなワケで、そのあたりは配慮してくれんか。頼む。m(_ _)m
なんかしら、このスレは、真面目な方も覗いてくださっている
らしいので。 嫁檄空気嫁。
議論がヒートアップするのは新しい、発見が近いからで、
いじめではないと思うけど。 >>289
> 嫁檄空気嫁。
つーか、「おれらは空気読めないからアンカーを
つけてくれ」と言っているんだが?
建設的な議論をしようぜ。なぁ? レス ビアン じゃないから アンカーいらないじゃん。 建設的は現実逃避で荒れる方が難易度レベルは上さ。
アスペだけが障害じゃないし障害を言い訳にするのは醜いよ。
障害王でもめざすか? >>291 >>292 >>293
申し訳ないんだが、
あんた統合失調相の強い疑いがある。
クスリが合ってない可能性が
かなり高いので、お医者さんに相談することを
お奨めする。
まぁ、おれらも他人事じゃねぇんだけどさ。 >>237
>まあ話を聞いていると、学術論文にまとめる訓練を受けてないから
>敷居が高いと思ってるような気がする
>論文を書くマニュアル作業を身につけるのも指導者がいないと難しい
自然科学の基礎研究に『学力』『経済力』は不要。その動かぬ証拠はこうだ!
ガウク大統領は、次のように強調しているー
「1945年5月8日、我々は解放された。我々を解放したのは、ソ連の諸民族の代表者達だったが、そればかりではない。
それゆえ、我々は、感謝と尊敬の念を示さなくてはならない。戦後ドイツが、ベルリンの壁により長い間分断されたという
事実でさえも、そうした気持ちに影響を与えるべきではない。一部の観測筋は疑っているようだが、私には、
ロシアにもロシア人に対しても問題はない。」
http://jp.sputniknews.com/europe/20150502/284616.html
ドイツ人が泣いて感謝するロシアの自然科学能力は、こうして養われたものである!
我らがネステロフは、全てのギアボックスを簡単に直してしまったよ。ある時、
イギリス人の技術者がネステロフのところに来て、「あなたはどこの大学で技術を学んだのですか?」
と聞いたことがある。ネステロフのやつは「コルホーズ大学さ」なんて答えておったな。
http://www.geocities.co.jp/SilkRoad/5870/loza1.html 経済学や経営学版にたまれよ。物理数学なんてロリコンセクハラ気味さ。
やりすぎると 。理系に痛手も生物はしっかりしているけど、医学看護歯学薬学
は将来的に別個の板にするべきと思うG。 数学科は苦手で数学を詰めてやっているんだろうな。多学科の方が流ちょうな気がする。
数字数式扱っても。そういう志望動機の方がいいよ。できる奴はみんな数学をクリア
していったさ。 経営管理とかあるし、数学単独で、一人歩きするのは危険が伴うと思う。 >>297
おまいら応用数学とかで、なんぼでも潰しが利くだろ?
ぶっちゃけ、応用数学系のリテラシー不足してんじゃねぇか?
線形計画法とかゲーム理論とか、そういう方面に
ちゃんと目配りしてるか?
おれなんかバリバリの工学系(町工場のオヤジなんだよ)なのに
(コンピュータという道具があるから、なんとかなってんだけどさ)
数論とかに踏み込んでんだぞ?
おれがメソポタミアの数学に惹かれるっつーのは、
そういう「実用に寄り添いつつ、『数学的な興味』のほうにも
魅せられる」っつー、アンビバレント(二律背反)な心性があると
思ってるんだよ。
おまいら、真面目に、本気で話してみ? 工学数学か。なるほどねえ。数学は早熟ではないのか?中ランといううわさがあるし。
だけど、応用数学、それはあたりまえのことだがな、数論と接点があるのはいいことだわ。 >>303
いや、言っとくけで、マジで統合失調症を疑った ほうがいいぞ?
知人に統合失調症を患(わずら)っているひとはいて、「精神病院で
ドクター論文書いて、ついでに嫁までゲットしました。
あっはっはっはっはー」つー例も見たから いいんだけどさ、
>>294 は正直マジだから。
> 工学数学か。なるほどねえ。数学は早熟ではないのか?
> 中ランといううわさがあるし。
> だけど、応用数学、それはあたりまえのことだがな、
> 数論と接点があるのはいいことだわ。
というのも、「工学数学」ではなく「工業数学」(線形代数とか、
制禦工学とかに関連するフーリエ変換とかラプラス変換とか)に絡めて
ちゃんと説明する努力をしたほうがいいと思うんだが、どうだ。 なんか知ってることが多くて興味ないよ。僕は文系数学だから、何かの足しになると思って覗いてるけど、数式に反応しない民族まで巻き込んで序列を付けたり、
給料を計算したりして優越するのはよくないんじゃないの?
ムハンマドの宗教書は好きだけど、数学なんてこき使われるだけだろ?
ドクタークラスならなおさら。自分は文学とか心理学とか化学とか
民俗神話の博士の方さ。
精神病院は殆んど卒業してて、クリニックすすめられてるさ。訪問看護院にね。
入院での悲惨な境遇や、影響からの相当頻度の人の死隔離拘束の現実も追体験して、二度と過ちが起きないように
数学・理系を使うのも悪くないねえ。 線型は所見だけど、ゲーム理論自体は、乗り越えるというより
僕は文系だから、謎解きのようなものをしているときもあったけどな。
ま嫁がいるなら易しくしてやれよ。
別に数学なんて何時から初めていつ辞めてもいいだろう。数学を専門や
カリキュラムで学んだものは、他人のために数学を使っている奴がほとんどだよ。
他人の幸せを望む。いいことだろ。 >>307
ごめん。オレらはサンフランシスコみたいな、北のほうは
体質に合わないんだ。
サンディエゴあたり(特に、オールドタウンは住みたいと思う)の、
もう、太陽の光の色が違うような場所
(サングラスは手放せないけどな)のほうが、
体質に合ってる。 クヌス先生が一九七〇年に『古代バビロニアの算法』なんていう
論文を書いていたというのは知らなかった ……。 >>118-123
原始…に限らなければ (m,n) や (p,q) と1対1の対応が可能かも。
もしそうなら、カントル流でナンバリング可能か。
原始…に限ると、原始と非原始の個数をカウントする必要が出てきて、面倒なことにならぬか。 一般の場合は、自由に与えた二数(r,s)に対し、a=|r^2-s^2|、b=2r*s、c=r^2+s^2なんかを使って、
ピタゴラス数を定めればよい(だけ?)ので、あとは、(r,s)に対するナンバリングのルールの設定だけですよね。
この方法に準じ、原始に限る場合は、二数が互いに素である必要があります。面倒そう、と思うのは自然だ
と思います。しかし、それは、(r^2-s^2)^2+(2r*s)^2=(r^2+s^2)^2 の公式を使おうとするからです。
全ての原始ピタゴラス数は、ある三分木構造に埋め込むことができることが知られています。
三分木の各ノードをナンバリングすれば、原始ピタゴラス数をナンバリングしたことになります。
あるいは、有理数と原始ピタゴラス数は一対一(※)に対応可能であることを利用し、
有理数のナンバリングに沿うような形で、原始ピタゴラス数をナンバリングすることもできます。
※:原始ピタゴラス数(a,b,c)と(b,a,c)を別物として扱うことで、区間(0,1)の有理数と一対一に対応
このスレッドには、大きく2種類の原始ピタゴラス数をナンバリングするプログラムをアップしてあります。
一つは三分木への埋め込みを利用する方法で、もう一つはファレイ分数を利用する方法です。
番号から原始ピタゴラス数への変換、及び、逆変換をlog(n)オーダーの計算量で実現できることを示しています。
(それぞれ、>>119 と >>156 からいけます。)
>>原始…に限ると、原始と非原始の個数をカウントする必要が出てきて、面倒なことにならぬか。
私も当初、ファレイ分数の方は、φ関数の様な物を用意する必要があるかと思いましたが、
発想の転換で必要とせずにプログラミングできました。 「ペル方程式」
2aa - bb = 1,
をみたす (a,b) について
(2aa)^2 + (bb)^2 = 2(2aa)(bb) + (2aa-bb)^2 = (2ab)^2 + 1^2,
(a/b)^2 + (b/2a)^2 = 1^2 + 1/(2ab)^2,
例えば
50^2 + 49^2 = 70^2 + 1^2 = 65^2 + 26^2,
(5/7)^2 + (7/10)^2 = 1^2 + (1/70)^2 > 1, 〔三平方の定理〕
自然数Nが三個の平方数の和で表されるための必要十分条件は
n≧0, k≧0, a∈{1,2,3,5,6} により N = (4^n)(8k+a) と表わされることである。
必要性は容易に示せる。
十分性はルジャンドル(1798)によって証明されたが、二次形式に関する議論を要し、複雑である。
Melvyn B. Nathanson, "Additive number theory : the classical bases", GTM 164, Springer-Verlag, New York, Tokyo, (1996)
の第1章を参照。 >>269
√2 = 1 + 1/{2 + 1/[2 + 1/(2 + ・・・・)]} = 1 + [2,2,2,2,2,・・・・],
白銀数 1 + √2 = 2 + [2,2,2,2,・・・・],
黄金数 φ = (1+√5)/2 = 1 + 1/{1 + 1/[1 + 1/(1 + ・・・・)]} = 1 + [1,1,1,1,1,・・・・・]
>>270
√3 = 1 + 1/{1 + 1/[2 + 1/(1 + 1/(2 + ・・・))]} = 1 + [1,2,1,2,1,2,・・・・] 〔三平方の定理〕
自然数Nが三個の平方数の和で表されない条件は
n≧0, k≧0 により N = (4^n)(8k+7) と表わされることである。 〔補題3〕
a) 直角三角形の三辺が自然数のとき、その面積は平方数でない。
b) 2つの4乗数の差は平方数でない。
(x^4 - y^4 = zz は自然数解をもたない。)
c) 3つの平方数が等差数列をなしているとき、公差eは平方数でない。
(d-e, d, d+e; e) が4つとも平方数にはならない。
a) → b)
x^4 - y^4 = zz に自然数解があったとすると、
(x^4-y^4, 2(xx)(yy), x^4+y^4) が直角三角形の三辺となり
しかも面積は (xyz)^2 で平方数となり、 a) に矛盾する。
a) ⇔ c)
栗原将人:「フェルマーとワイルスと」
数理科学 (サイエンス社), No.374, p.46-51 (1994/Aug) a)
(a,b,c) を直角三角形の三辺、aa+bb=cc とする。
a,b は互いに素としてよい。aを奇数、bを偶数とすると
a = dd - ee, b = 2de,
と書ける。従って ab/2 = de(d+e)(d-e),
a,b は互いに素だから (d-e,d,d+e; e) も互いに素。
ここで、 (a,b,c) は面積 ab/2 が平方数である直角三角形
のうち最小のものと仮定する。
(d-e,d,d+e; e) は4つとも平方数で
d-e = ii, d = ff, d+e = hh; e = gg,
(f,g,h,i は互いに素な自然数)
と書ける。
(h+i)(h-i) = hh - ii = 2e = 2gg から
h+i,h-i の一方が平方数で、他方は平方数の2倍である。
h+i,h-i が共に偶数だから
h = jj + 2kk, i = |jj - 2kk| (j,kは自然数)
と書ける。
f^2 = d = (hh+ii)/2 = (jj)^2 + (2kk)^2,
となる。従って (jj,2kk,f) が直角三角形の三辺となり
その面積は (jk)^2 で平方数となる。
つまり、(a,b,c) より小さな直角三角形で同じ条件を
みたすものが存在することになる。
しかしこれは (a,b,c) の最小性と矛盾する。 (終) b) 省略
x^4 + y^4 = zz が自然数解をもたないことが次にある。
A.O.ゲルフォント:「方程式の整数解」 東京図書 数学新書5 (1960)
銀林 浩:訳 c)
(d-e,d,d+e; e) は4つとも平方数である組のうち、
最小のものと仮定する。
(d-e,d,d+e; e) = (ii, ff, hh; gg)
(f,g,h,i は互いに素な自然数)
と書ける。
(h+i)(h-i) = hh - ii = 2e = 2gg から
h+i,h-i のうち一方が平方数で他方が平方数の2倍である。
(h+i,h-iが共に偶数だから)
h = jj + 2kk, i = |jj - 2kk|,
(j,k は自互いに素な自然数)
と書ける。
ff = d = (hh+ii)/2 = (jj)^2 + (2kk)^2,
となる。従って (jj,2kk,f) が直角三角形の三辺となる。
jj = DD-EE, kk = DE, f = DD+EE
(D,E は互いに素な自然数)
と書ける。その面積は
DE(D+E)(D-E) = (jk)^2 = (平方数),
(D-E,D,D+E; E) は4つとも平方数である。
つまり (d-e,d,d+e; e) より小さな4つ組で
同じ条件をみたすものが存在することになる。
しかしこれは (d-e,d,d+e; e) の最小性と矛盾する。(終) >>316
d) 1以外の三角数は4乗数でない。
( n(n+1)/2 = m^4 は m≧2 なる整数解を持たない。)
n(n+1)/2 >1 が4乗数であれば n, n+1 のうち一方が4乗数で他方が4乗数の2倍。
∴ x^4 - 2y^4 = ±1 に整数解 (x,y) がないことに帰着する。
e) yy = x^3 - x (楕円曲線) は y≠0 なる有理点 (x,y) を持たない。
(証明略) >>318
〔補題〕
x^4 + y^4 = zz は xyz≠0 となる自然解 (x,y,z) をもたない。
(略証)
題意をみたす (x,y,z) のうち、zが最小のものをとる。
x,y,z は互いに素であるとしてよい。
xを奇数、yを偶数とすれば
xx = aa - bb, yy = 2ab, z = aa + bb,
(aは奇数、bは偶数、互いに素な自然数)
をみたす整数 a, b が存在する。
2abは平方数だから、aは平方数、bは平方数の2倍
a = ZZ, 2b = ss,
また、xx=aa-bb から
x = mm - nn, b = 2mn, a = mm + nn,
(m,nは互いに素な自然数で、偶数と奇数)
をみたす整数 m, n が存在する。
mn = b/2 = (s/2)^2,
となり m, n は互いに素だから
m = XX, n = YY,
(X,Yは互いに素な自然数)
∴ X^4 + Y^4 = nn + mm = a = ZZ,
となる。ところが
z = aa + bb > aa = Z^4,
だから
0 < Z = √a < z^(1/4) (z>1)
つまり (x,y,z) より小さな (X,Y,Z) で
同じ条件をみたすものが存在することになる。
しかしこれは (x,y,z) の最小性と矛盾する。(終)
A.O.ゲルフォント 「方程式の整数解」 東京図書 数学新書5 (1960)
p.71〜74 ピタゴラス数は、
y^2=2x+1のyに任意の有理数を代入すれば、求めることが出来ます。 491色川高志「井口千明の金属バット集団殴打撲殺を熱望します」2018/10/18(木) 18:33:15.90ID:78662J73
龍神連合五代目総長・井口千明(葛飾区青戸6−23−19)の挑発
井口千明「糞関東連合文句があったらいつでも俺様を金属バットで殴り殺しに来やがれっ!! 糞関東連合の見立・石元・伊藤リオンの糞野郎どもは
龍神連合四代目総長の俺様がぶちのめしてやるぜっ!! 賞金をやるからいつでもかかって来いっ!! 糞バエ関東連合どもっ!! 待ってるぜっ!!」(挑戦状)
492盗聴盗撮犯罪者色川高志(青戸6−23−21ハイツニュー青戸1032021/02/03(水) 13:53:22.55ID:QtP78E4Z
●青戸六丁目被害者住民一同「盗聴盗撮犯罪者の高添沼田ハゲエロ老義父の逮捕を要請します」
長木親父&長木よしあき(盗聴盗撮犯罪者の高添沼田ハゲエロ老義父を逮捕に追い込む会&被害者の会会長)住所=東京都葛飾区青戸6−23−20
●盗聴盗撮つきまとい嫌がらせ犯罪者/アナル挿入食糞愛好家で息子の嫁で自慰行為をしている高添沼田ハゲエロ老義父
高添沼田ハゲエロ老義父の住所=東京都葛飾区青戸6−26−6
【通報先】亀有警察署=東京都葛飾区新宿4ー22ー19 рO3ー3607ー0110
盗聴盗撮つきまとい嫌がらせ犯罪者/アナル挿入食糞愛好家で息子の嫁で自慰行為をしている高添沼田ハゲエロ老義父の盗聴盗撮つきまとい嫌がらせ犯罪者/愛人変態メス豚家畜清水婆婆(青戸6−23−19)の
五十路後半強制脱糞
http://img.erogazou-pinkline.com/img/2169/scatology_anal_injection-2169-027.jpg
アナル挿入食糞愛好家で息子の嫁で自慰行為をしている高添沼田ハゲエロ老義父によりバスタブで清水婆婆の巨尻の肛門にシャワーのキャップをはずしてずっぽり挿入。
そして、大量浣腸。 勢い良く噴出!腸内洗浄状態です。
http://101.dtiblog.com/b/bodytk9690/file/kan01.jpg
浣腸器と異なりどくどくと直腸内に注入され清水婆婆は激しくあえぎます >324
>>322
y=1
訂正します。
ピタゴラス数は、
y^2=2x+1に、y>1の有理数を代入して、xを求めれば得られます。 a = 5√2 - 4√3,
b = 3√3 - 5,
c = 3√2 - 4,
とおくと
3a + 4b - 5c = 0,
∴ a^2 + b^2 - c^2 = (-2a -b +2c)^2 + (c-a)(3a+4b-5c)
= (-2a -b +2c)^2
= (-3 -4√2 +5√3)^2
= {2/(147 + 104√2 + 85√3 + 60√6)}^2
≒ (1/294)^2,
∴ a:b:c ≒ 3:4:5, aa + bb = cc = 65^2 をみたす自然数 (a, b) の組を求めよ。
(略解)
a = k(mm - nn), b = k(2mn), c = k(mm+nn),
k>0, m > n > 0,
とおく。
(k,m,n; a,b) = (1,8,1; 63,16) (5,3,2; 25,60) (1,7,4; 33,56) (13,2,1; 39,52) d = 5√3 - 4√2 = 3.00340
e = 4√3 + 5√2 = 13.99927
とおくと
dd + ee = (5^2+4^2)(3+2) = 41・5 = 205,
√2 =(-4d+5e)/41,
√3 = (5d+4e)/41,
ここで d≒3, e≒14 とすれば
√2 ≒ 58/41 = 1.41463
√3 ≒ 71/41 = 1.73171 a = 5√2 - 4√3 = 1.00005207 / 7,
d = -4√2 + 5√3 = 3.003399788
より
dd - aa = (5^2-4^2)(3-2) = 9,
√2 = (5a+4d)/9,
√3 = (4a+5d)/9,
ここで a ≒ 1/7, d≒3 とすれば
√2 ≒ 89/63 = 1.41270
√3 ≒ 109/63 = 1.73016 三平方の定理「最古の応用例」
3700年前ごろの古バビロニア (現在のイラク) の遺跡から見つかった粘土板に、
数学の「三平方の定理」を使った正確な直角三角形が描かれていたことが分かった。
http://www.asahi.com/articles/ASP876HGDP86ULBJ009.html
2021/Aug/08 08:00
てことは「ピタゴラスの定理」ぢゃなかったのか ■ このスレッドは過去ログ倉庫に格納されています