質問に対する回答(27)                    戻る

 当HPの掲示板「出会いの泉」に、当HP読者のHN「k.nika」さんより書き込みがあった。
(平成25年3月7日付け)

 ひとつご教示頂きたいのですが、ある既知の数Aがあり、未知数Bを掛け、 「C2+1」の形
にしたいです。

 未知数Bを求めるなにか良い方法はないでしょうか。(ここで、A、B、Cは非負の整数)


 らすかるさんからのコメントです。(平成25年3月8日付け)

 Aを素因数分解すれば求められるようですが、目的がAを素因数分解することなら難しそ
うです。


 GAI さんからのコメントです。(平成25年3月8日付け)

 Aを与えたとき、未知数Bの選び方の候補を調べてみました。これからなにか法則を掴め
ませんかね。

A-->B   :A-->B  :A-->B  :A-->B   :A-->B   :A-->B
1-->1   :2-->1  :5-->1  :10-->1  :13-->2  :17-->1
1-->2   :2-->5  :5-->2  :10-->5  :13-->5  :17-->10
1-->5   :2-->13 :5-->10 :10-->17 :13-->25 :17-->26
1-->10  :2-->25 :5-->13 :10-->29 :13-->34 :17-->53
1-->17  :2-->41 :5-->29 :10-->53 :13-->74 :17-->85
1-->26  :2-->61 :5-->34 :10-->73 :13-->89 :17-->130
1-->37  :2-->85 :5-->58 :10-->109:13-->149:17-->178
1-->50  :2-->113:5-->65 :10-->137:13-->170: *
1-->65  :2-->145:5-->97 :10-->185: *   : *
1-->82  :2-->181:5-->106: *  : *    : *
1-->101 : *   :5-->146: *    : *    : *
1-->122 : *   :5-->157: *    : *    : *
1-->145 : *   : *   : *    : *    : *
1-->170 : *   : *   : *    : *    : *
1-->197 : *   : *   : *    : *    : *

A-->B   :A-->B   :A-->B   :A-->B   :A-->B    :A-->B
25-->2  :26-->1  :29-->5  :34-->5  :37-->1   :41-->2
25-->13 :26-->17 :29-->10 :34-->13 :37-->26  :41-->25
25-->41 :26-->37 :29-->58 :34-->65 :37-->50  :41-->61
25-->74 :26-->85 :29-->73 :34-->89 :37-->125 :41-->130
25-->130:26-->125:29-->169:34-->193:37-->173 : *
25-->185: *    :29-->194: *    : *     : *

A-->B   :A-->B   :A-->B   :A-->B  :A-->B   :A-->B
50-->1  :53-->10 :58-->5  :61-->2 :65-->1  :73-->10
50-->37 :53-->17 :58-->29 :61-->41:65-->5  :73-->29
50-->65 :53-->109:58-->97 :61-->85:65-->34 :73-->137
50-->173:53-->130:58-->169: *  :65-->50 :73-->194
 *    : *    : *    : *   :65-->82 : *
 *    : *    : *    : *   :65-->106: *
 *    : *    : *    : *   :65-->193: *

A-->B   :A-->B   :A-->B   :A-->B   :A-->B
74-->13 :82-->1  :85-->2  :89-->13 :97-->5
74-->25 :82-->65 :85-->17 :89-->34 :97-->58
74-->149:82-->101:85-->26 :89-->170:97-->146
74-->185: *    :85-->61 : *    : *
 *    : *    :85-->113: *    : *
 *    : *    :85-->178: *    : *


 A≦100、B≦200までの範囲なのであしからず。*はその範囲では見つからなかったため
です。


 らすかるさんからのコメントです。(平成25年3月8日付け)

 素因数分解に直結する内容ですので、もし法則を見つけられたら、世紀の大発見になりそ
うな気がします。…ということで、世界ではそれについて研究している人が、ある程度いると
思いますので、一般の人が法則を見つけるのはきっと難しいと思います。


 空舟さんからのコメントです。(平成25年3月8日付け)

 aとbは互いに素で、a2+b2=A となる整数a、bを見つけてこられれば、(そのようなa、bを
見つける段階がきっと困難なのだと思いますが・・・)、ad+bc=1 となるc、d を手に入れて
2+d2=B とおくことで、AB = (a2+b2)( c2+d2) = (ac−bd)2+(ad+bc)2 が条件を満た
すと思います。


 k.nika さんからのコメントです。(平成25年3月8日付け)

 GAI さん、空舟さん、らすかるさん、有難うございます。Aが素因数分解可能だとすると、ど
うでしょうか。


 らすかるさんからのコメントです。(平成25年3月9日付け)

 素因数分解が出来れば、mod Aにおける -1 の平方根Cが求められますので、B=(C2+1)/A
によりBも求まります。法演算における平方根の求め方については、

 塩田 著(高知大学 情報科学専攻) 「情報解析学特講

のp.18〜22に記載されています。


 k.nika さんからのコメントです。(平成25年3月9日付け)

 どうも有難うございます。頑張ってみます。


 GAI さんからのコメントです。(平成25年3月9日付け)

 面白かったので、どんなAに対し何のBを掛けるとC2+1の数が構成されていくのかを範囲
を広げて調べてみました。

 Aに選べる数は、空舟さんのご指摘のように数列大辞典に載っている「A008784」の数に
限られていき、これに対するB(B1〜B10の10個を表にしました)もまた、この「A008784」グ
ループに属する数となっていることが確認できます。

 一般に、ある数が2つの平方数の和で表される条件がガウスの平方剰余相互法則での
第一補充法則と関連しており、またガウスの整数環がラグランジュの恒等式と繋がり、一方
を、ac−bd=1と選ぶことで、この問いが発生する構造が見てとれます。

A   : 1 / 2 / 5 / 10 / 13 / 17 / 25 / 26 / 29 / 34
B1  : 1 / 1 / 1 / 1 / 2 / 1 / 2 / 1 / 5 / 5
B2  : 2 / 5 / 2 / 5 / 5 / 10 / 13 / 17 / 10 / 13
B3  : 5 / 13 / 10 / 17 / 25 / 26 / 41 / 37 / 58 / 65
B4  : 10 / 25 / 13 / 29 / 34 / 53 / 74 / 85 / 73 / 89
B5  : 17 / 41 / 29 / 53 / 74 / 85 / 130 / 125 / 169 / 193
B6  : 26 / 61 / 34 / 73 / 89 / 130 / 185 / 205 / 194 / 233
B7  : 37 / 85 / 58 / 109 / 149 / 178 / 269 / 265 / 338 / 389
B8  : 50 / 113 / 65 / 137 / 170 / 241 / 346 / 377 / 373 / 445
B9  : 65 / 145 / 97 / 185 / 250 / 305 / 458 / 457 / 565 / 653
B10 : 82 / 181 / 106 / 221 / 277 / 386 / 557 / 601 / 610 / 725


A   : 37 / 41 / 50 / 53 / 58 / 61 / 65 / 73 / 74 / 82
B1  : 1 / 2 / 1 / 10 / 5 / 2 / 1 / 10 / 13 / 1
B2  : 26 / 25 / 37 / 17 / 29 / 41 / 5 / 29 / 25 / 65
B3  : 50 / 61 / 65 / 109 / 97 / 85 / 34 / 137 / 149 / 101
B4  : 125 / 130 / 173 / 130 / 169 / 202 / 50 / 194 / 185 / 293
B5  : 173 / 202 / 229 / 314 / 305 / 290 / 82 / 410 / 433 / 365
B6  : 298 / 317 / 409 / 349 / 425 / 485 / 106 / 505 / 493 / 685
B7  : 370 / 425 / 493 / 625 / 629 / 617 / 193 / 829 / 865 / 793
B8  : 545 / 586 / 745 / 674 / 797 / 890 / 229 / 962 / 949 / 1241
B9  : 641 / 730 / 857 / 1042 / 1069 / 1066 / 293 / 1394 / 1445 / 1385
B10 : 866 / 937 / 1181 / 1105 / 1285 / 1417 / 337 / 1565 / 1553 / 1961


A   : 85 / 89 / 97
B1  : 2 / 13 / 5
B2  : 17 / 34 / 58
B3  : 26 / 170 / 146
B4  : 61 / 233 / 305
B5  : 113 / 505 / 481
B6  : 178 / 610 / 746
B7  : 205 / 1018 / 1010
B8  : 290 / 1165 / 1381
B9  : 394 / 1709 / 1733
B10 : 509 / 1898 / 2210



 空舟さんからのコメントです。(平成25年3月9日付け)

 c の符号が変わっても B=c2+d2 は同じ結果なので、「ad-bc=1」でも良いと思います。そ
の場合は以下のようになり、ac+bd が Cに相当することになります。

 AB = (a2+b2)( c2+d2) = (ac+bd)2+(ad−bc)2

 (※) a、b、c、d が正ということなら、こっちの式の方が良いかもしれません。

(私が当初 AB = (a2+b2)(c2+d2) = (ac−bd)2+(ad+bc)2 という符号で書いたのは、
 |a+bi| |c+di| = |(a+bi)(c+di)| に由来します)


 k.nika さんからのコメントです。(平成25年3月9日付け)

 Aに選べる数は空舟さんの御指摘のように数列大辞典に載っている「A008784」の数に限
られていき、これに対するB(B1〜B10の10個を表にしました。)もまたこのA008784グルー
プに属する数となっていることが確認できます。


 これは気がつきませんでした、とても参考になります。

 aとbは互いに素で、a2+b2=A となる整数a、bを見つけてこられれば、(そのようなa、b
を見つける段階がきっと困難なのだと思いますが・・・)


 たしかに困難なのですが、たとえば、A=a2+b2 (a:偶数、b:奇数) という性質があり、こ
れに既知数Bを掛け、
  AB=C2+D2 (C:偶数、D:奇数で、Cの桁数>2*Dの桁数)
という性質を持たす事が出来れば、具体的にC、Dの値が分からなくても、A=a2+b2 を求め
ることが出来るのですが・・・


 空舟さんからのコメントです。(平成25年3月10日付け)

 A=a2+b2、B=c2+d2、AB=(a2+b2)(c2+d2) に対して、AB = (ac−bd)2+(ad+bc)2
成り立つので、これを利用する方針を考えましたが...やはり困難でした。

 a:偶数、b:奇数、c:偶数、d:奇数 として、C=|ad+bc|、D=|ac-bd| という風に考えました。

 Cの桁数>2*Dの桁数 を満たすためには、acとbdをかなり近くする必要が有りました。

 適当に設定した具体的な数値で概算してみました。

 aが50桁でbが25桁だとして、c=1、d=(25桁)を試すと、ad+bcは75桁、acおよびbdの桁は50
桁ぐらいなので、acとbd の上13桁ぐらいを一致させる必要がありました。

 従ってこの方針は困難だと思いました...


 k.nika さんからのコメントです。(平成25年3月10日付け)

 たしかに正攻法では難しそうですね、なにかアイデアをひねり出さないと駄目かもしれませ
ん。どうも有難うございました。



   以下、工事中!