MENU
175,971

スレッドNo.1834

arctan系魔方陣

凄いものをみかけましたのでご紹介いたします。

次のページには、256個の有理数が
16x16 の方陣として提供されています。

https://github.com/TokusiN/AtanMagic/blob/main/data.txt

この256個の有理数では、1から512までの自然数を全て使い、このうち256個の自然数を分子に、残りの256個を分母として一対一に組み合わせ、できた256個の分数がそのまま既約になっています。言い換えれば約分操作は一回もしていません。

前述の通りに、16x16 の方陣としてデータ提供されて居るわけですが、
各マス目の有理数にarctan関数を作用させた値で方陣をつくると、これが魔方陣になっていて、縦横斜めそれぞれの総和が 2π になっています。

魔方陣であることを動画化したものが以下にあります。
https://tatt61880.github.io/AtanMagic/

それにしてもどういう発想なんでしょうかね……

引用して返信編集・削除(編集済: 2024年03月31日 13:54)

拝見しました。
作者ハンドルネーム:TakusiNさん物凄いですね。
1~512のすべてを使って16*16=216個の既約分数を作るのもすごいけど、これがarctanで魔方陣だなんておったまげ~です。
なんとかこの人に連絡がとれて発見の経緯を聞きたいものですね。
コンピュータでの腕力での解決が趣味だと書かれてはいるが何かしらの法則や気付きが無ければ到底無理ですよね。
いやー世の中凄い人がいるもんだ。
ちなみに第一行の分数を通分してみても、数が莫大過ぎて何にもヒントが取れませんでした。

引用して返信編集・削除(未編集)

規約分数とarctan値がこうもバランスがとれていることに感動したので
では1~8の数字を一個ずつ使って、2行2列の1より小さい4つの既約分数で
可能な限り組合せを作ってみたら
[1/2 3/4] 

[5/6 7/8]
----------
[1/2 3/4]

[5/8 6/7]
----------
・・・・・・・・・・・・・・
-----------
[7/8 5/6]

[3/4 1/2]
等の全部で432通りの行列が作れました。
ところがすべての行列で、この値に対するarctanの値を取った行列には何の美しい規則を示すものはありませんでした。
やってはいませんがたぶん3次正方行列で1~18を用いた9個の既約分数でのタイプでも何の手掛かりも得られないものと思われます。

16次まで拡張した行列でこの凄い法則が現れ出ることが益々興味を引き立てます。

*SNS のX(旧twitter)で作者のTokusiNさんにどうやって作ったのか尋ねていたら
思い付いたのはマチン系の公式からで具体的な作成方法はガチガチのコンピューティングとのことでした。

引用して返信編集・削除(編集済: 2024年04月02日 08:25)

聞くところによれば
任意の正の整数 q, r についてふたつの公式
①: π/4 = arctan(q/(q +r)) +arctan(r/(2*q +r))
②: π/4 = arctan(q/(q -r)) +arctan(r/(2*q -r))
がともに成り立つのだそうで。
arctan関数への引数はともに真分数であるところがミソです。さきのatanmagic でもそうなっていますので使えるかも?

Q[1]からQ[8]まで、R[1]からR[8]までの16個の整数をテキトーに選ぶと

8*(π/4) =
arctan(Q[1]/(Q[1] +R[1])) +arctan(R[1]/(2*Q[1] +R[1]))
+arctan(Q[2]/(Q[2] +R[2])) +arctan(R[2]/(2*Q[2] +R[2]))
+arctan(Q[3]/(Q[3] +R[3])) +arctan(R[3]/(2*Q[3] +R[3]))
+arctan(Q[4]/(Q[4] +R[4])) +arctan(R[4]/(2*Q[4] +R[4]))
+arctan(Q[5]/(Q[5] +R[5])) +arctan(R[5]/(2*Q[5] +R[5]))
+arctan(Q[6]/(Q[6] +R[6])) +arctan(R[6]/(2*Q[6] +R[6]))
+arctan(Q[7]/(Q[7] +R[7])) +arctan(R[7]/(2*Q[7] +R[7]))
+arctan(Q[8]/(Q[8] +R[8])) +arctan(R[8]/(2*Q[8] +R[8]))

となり、16個のarctan関数の値の総和が 2*π
という形を得られます。atanmagic の性質の一部によく似ています。ちょっとかすっているのかもしれません。

上記は公式①のみでつっぱっていますが、実際には公式②との混在でもよい筈です。自由度が膨れ上がりますが……(駄目:追記を参照願います)

こうした作戦で今回の魔方陣が作られたのかどうかさだかではありませんが……望み薄かもしれません。

追記。
②は真分数のみの式になっていませんでした。謹んでお詫びします。
①は次のGAIさんによる御投稿内で使われる式と実質的に同じものと思います。

引用して返信編集・削除(編集済: 2024年04月03日 18:48)

私も昨日からどうやって構成していけるんだろうかとずーと考え続けています。
私が見つけたマチンの公式もどきとして、一般に1より小さい既約分数のs/t
に対するもので(tan(π/4)=1だけが唯一有理数となれるので、このパターンは作り易い。)

arctan(s/t)+arctan((t-s)/(t+s))=π/4 

の組合せで必ずπ/4が作れるので,これより

arctan(1/2)+arctan(1/3)=π/4
arctan(1/4)+arctan(3/5)=π/4
arctan(1/5)+arctan(2/3)=π/4
arctan(1/6)+arctan(5/7)=π/4
arctan(1/7)+arctan(3/4)=π/4
arctan(1/8)+arctan(7/9)=π/4
arctan(1/9)+arctan(4/5)=π/4
arctan(1/10)+arctan(9/11)=π/4

従ってこれをすべて足し合わせれば
A=[1/2,1/3,2/3,1/4,3/4,1/5,3/5,4/5,1/6,1/7,5/7,1/8,1/9,7/9,1/10,9/11]
の16個の既約成分に対し、そのarctan値の和は2*πを作る。

gp > vecsum(apply(i->atan(i),A))
%=6.28318530717958647692528・・・(=2*π)

しかしサイトにある16×16次の正方行列の第1行は
M1=[5/168 ,259/498 ,216/337 ,129/478 ,381/436 ,266/303 ,6/127 ,78/179
,31/480 ,144/307 ,210/341 ,43/474 ,174/443 ,172/379 ,271/348 ,41/88]
であるので、この既約分数とセットを組んでπ/4 を産み出していくものは
それぞれ
5/168 VS 163/173
259/498 VS 239/757
216/337 VS 121/553
129/478 VS 349/607
381/436 VS 55/817
266/303 VS 37/569
6/127 VS 121/133
78/179 VS 101/257
31/480 VS 449/511
144/307 VS 163/451
210/341 VS 131/551
43/474 VS 431/517
174/443 VS 269/617
172/379 VS 207/551
271/348 VS 77/619
41/88 VS 47/129
が対応していくこととなる。
ところが右に現れる16個の既約分数は何処にも使われていなく、しかも163などの数は重複して
出現することが起こる。しかも512よりも大きな数字が使われることになる。

この方針がここでストップすることになった。

そこで今複素数での偏角の様子に切り替え
口で解説していくのが大変なので、今検索を掛けているプログラムで
読み取って下さい。
例え存在していても膨大な時間が要する必要がありそうなんですが・・・・・

{t=0;}for(a1=2,512,for(a2=1,a1-1,for(a3=3,512,for(a4=2,a3-1,\
for(a5=4,512,for(a6=3,a5-1,for(a7=5,512,for(a8=4,a7-1,\
for(a9=6,512,for(a10=5,a9-1,for(a11=7,512,for(a12=6,a11-1,\
for(a13=8,512,for(a14=7,a13-1,for(a15=9,512,for(a16=8,a15-1,\
for(a17=10,512,for(a18=7,a17-1,for(a19=11,512,for(a20=10,a19-1,\
for(a21=12,512,for(a22=9,a21-1,for(a23=13,512,for(a24=12,a23-1,\
for(a25=14,512,for(a26=11,a25-1,for(a27=15,512,for(a28=14,a27-1,\
for(a29=16,512,for(a30=13,a29-1,for(a31=17,512,for(a32=16,a31-1,\
if(gcd(a1,a2)==1 && gcd(a3,a4)==1 && gcd(a5,a6)==1 && gcd(a7,a8)==1 && \
gcd(a9,a10)==1 && gcd(a11,a12)==1 && gcd(a13,a14)==1 && gcd(a15,a16)==1 &&\
gcd(a17,a18)==1 && gcd(a19,a20)==1 && gcd(a21,a22)==1 && gcd(a23,a24)==1 && \
gcd(a25,a26)==1 && gcd(a27,a28)==1 && gcd(a29,a30)==1 && gcd(a31,a32)==1 && \
imag((a1+a2*I)*(a3+a4*I)*(a5+a6*I)*(a7+a8*I)*(a9+a10*I)*(a11+a12*I)*(a13+a14*I)*(a15+a16*I)*\
(a17+a18*I)*(a19+a20*I)*(a21+a22*I)*(a23+a24*I)*(a25+a26*I)*(a27+a28*I)*(a29+a30*I)*(a31+a32*I))==0 , \
print(t++";"a2/a1","a4/a3","a6/a5","a8/a7","a10/a9","a12/a11","a14/a13","a16/a15","\
a18/a17","a20/a19","a22/a21","a24/a23","a26/a25","a28/a27","a30/a29","a32/a31)) \
))))))))))))))))))))))))))))))))

引用して返信編集・削除(編集済: 2024年04月03日 19:10)

上記のやり方ではとてもじゃないがいくら時間をかけても無理と判定
そこで1~512を一度ずつ用いる条件を除けば、次のような16次の行列ではarctanでの各行、各列、2つの対角線での和は2*πの
魔方陣とはなりそうです。
逆に言えば如何に1~512を一度ずつ使うということが凄いことがわかります。

[163/173 239/757 121/553 349/607 55/817 37/569 121/133 101/257 449/511 163/451 131/551 431/517 269/617 207/551 77/619 47/129]

[299/623 107/531 199/773 191/339 353/467 159/529 93/263 315/457 139/513 5/857 19/331 183/239 357/587 235/263 91/463 323/541]

[133/379 179/627 137/571 301/593 263/431 223/327 151/247 371/641 33/901 157/347 247/255 267/529 33/277 87/773 245/337 151/807]

[269/397 133/869 203/521 297/679 143/599 191/577 173/293 141/449 161/325 197/769 91/367 461/527 107/553 287/723 311/369 173/389]

[ 79/203 361/543 59/763 245/419 279/347 91/313 401/607 359/625 77/207 287/359 47/883 49/739 355/489 199/617 143/353 91/503]

[337/361 23/449 289/373 47/259 409/503 445/561 61/187 31/983 263/457 275/459 249/347 1/829 109/823 191/683 141/367 221/419]

[ 97/141 105/499 131/359 1/557 121/843 201/607 323/503 127/491 199/787 331/583 401/491 261/521 391/577 377/523 37/813 295/383]

[ 31/411 421/557 341/529 249/421 61/383 273/293 237/575 295/503 439/471 31/599 139/885 31/209 163/647 119/729 251/455 377/543]

[ 49/559 213/323 329/431 11/427 113/587 209/609 53/779 199/269 213/757 59/137 311/547 61/329 421/475 239/473 277/607 469/549]

[ 89/817 199/241 175/639 359/519 185/553 203/663 181/395 89/543 73/783 333/557 215/779 139/759 343/607 473/507 275/311 239/701]

[ 97/575 177/703 415/559 237/493 163/317 43/883 353/379 185/303 133/233 49/113 143/745 241/537 113/877 331/469 261/755 255/707]

[157/443 337/413 53/429 99/923 401/507 197/557 125/467 227/553 269/569 349/651 193/805 253/503 113/789 357/589 301/451 289/587]

[ 17/563 223/253 193/199 337/411 213/641 217/419 89/613 467/471 139/653 139/797 199/251 49/457 25/967 167/367 135/181 61/631]

[159/379 283/301 227/727 119/529 61/863 327/341 137/653 201/515 191/331 403/515 187/617 423/581 337/683 25/553 31/815 289/481]

[101/141 53/467 143/691 145/497 175/447 223/517 17/667 127/755 173/189 113/221 191/193 259/281 367/427 101/497 217/557 21/311]

[317/469 49/793 251/373 439/477 283/333 137/415 263/665 29/349 79/639 189/577 351/631 71/203 293/341 145/499 83/387 163/491]

引用して返信編集・削除(未編集)

正数 a,b,s,t,x,y について
a < b, s < t, x < y
を要請しておいて
arctan(a/b) +arctan(s/t)
= arctan((a*y +b*x)/(b*y -a*x)) +arctan((s*y -t*x)/(t*y +s*x))
とできます。

x = 0 ならば右辺と左辺は等しくなることは自明です。
左辺の2個の有理数をちょっとずらしてみたいと考えたのですが右辺のarctanに喰わせる値が真分数になりにくくて苦戦しております。また、ずらしたあとに約分が発生するかもしれません。

なかなかうまくいかないです。

引用して返信編集・削除(未編集)

比較的作り易い(arctanとタイプする所を省略でatanで書いています。)
atan(1/4)+atan(3/5)(=π/4) (a=1,b=4,s=3,t=5に対応)
からDengan kesaktian Indukmuさんのずらしテクニックを用いて
元々の16行列の第1行の成分を作り出していくと(第2項目に相当)
(x,y)=(479,855)->atan(163/173)+atan(5/168)   :ok
(x,y)=(38,2041)->atan(349/607)+atan(129/478) :no 
(x,y)=(351,653)->atan(121/133)+atan(6/127) :ok
(x,y)=(133,794)->atan(101/257)+atan(78/179) :ok
(x,y)=(1258,2493)->atan(449/511)+atan(31/480) :ok
(x,y)=(201,1967)->atan(163/451)+atan(144/307) :ok
(x,y)=(71,147)->atan(431/517)+atan(43/474) :no
(x,y)=(27,161)->atan(269/617)+atan(174/443) :no
(x,y)=(277,2411)->(atan(207/551)+atan(172/379) :no
(x,y)=(59,563)->atan(47/129)+atan(41/88) :ok
なる式に作り変えられる。
なお
atan(259/498)
atan(216/337)
atan(381/436)
atan(266/303)
atan(210/341)
atan(271,348)
には(x,y)が見つからない。

ただし分母が512をこえるものは採用しないことにする。(:no)
第1項目の分母が512以下なら採用して(:ok)そこで使われている部分の
元の行列からその数を含む分数は消していく。

これを今度は元の16行列の第2行の分数消し残ったものに対して作っていく。
これを繰り返して行けば自ずと1~512だけで作られていく分数が残っていかないだろうか?

なお魔方陣の作り方について何度か尋ねてみたらTokusiNさんから
8次から順に検討した結果、現実的な時間で作ることが可能な最小次数が16だったのです。
マチン系の円周率公式の生成手法を理解すると、この魔法陣に使われている分数がどのように選ばれたかわかると思います。

atan魔方陣をどうやって作ったかもきちんとまとめた方が良い気がしたけどもう詳細を覚えてないなぁ。
結構細かいステップに分けて少しずつ計算していったことは覚えてるけどそのステップの分解はもう忘却の彼方
の返事がありました。

引用して返信編集・削除(編集済: 2024年04月06日 09:07)

このスレッドに返信

ロケットBBS

Page Top