べき零元の発見                             戻る

 当HPがいつもお世話になっているHN「空舟」さんからの投稿です。
                                       (平成27年4月19日付け)

 pをある素数とする。Z[x]を整数係数多項式の集合とします。f(x)∈Z[x]を2次以上の既約な
多項式とすると、pをうまく選べば、 Z[x]/(f(x),p) はべき零元を含むという定理があります。
詳しくは下に説明します。それを具体的に見つけてみてくださいという問題です

[問題] 与えられたf(x)に対して、I_p={a(x)・f(x)+b(x)・p; a(x),b(x)∈Z[x]} とおく。素数pをうまく
    設定して、g(x)∈I_pではないが、g(x)2∈I_p となるようなg(x)∈Z[x]を見つけてください。

[例] ・f(x)=x2+1 に対しては、p=2、g(x)=(x+1) で、 (x+1)2 = (x2+1)+2x

・f(x)=x3+x+1 に対しては、p=31、g(x)=x2+14x+11 で、 g(x)2 = (x-3)f(x)+31(x3+7x2+10x+4)

・f(x)を好きな既約多項式に設定して試してみてください。

・f(x)=x5+x+3 ではどうでしょうか。(総当たりでは厳しいと思います)


 GAI さんからのコメントです。(平成27年4月19日付け)

 羅針盤が欲しい。朝から相当の時間をかけて探しておりますがまだ見つけられません。恐
れ入りますが、ヒントとして、a(x)、b(x)はxの1次、5次と決めつけてかまいませんか?


 空舟さんからのコメントです。(平成27年4月19日付け)

 g(x)が4次になるので、a(x)は3次で用意する必要があります。b(x)が5次以上の場合は f(x)
で割った余りを取れば良いので、b(x)は4次にできます。でも、pは6桁の素数になるので、や
っぱり理論的に解かないと厳しいと思います。解説は用意してありますので、数日後に投稿
しようかなと思っています。


 DD++さんからのコメントです。(平成27年4月20日付け)

 ・f(x)=x5+x+3 について、p=253381、g(x)=x4+190032x3+47523x2+138515x+50677 でどうで
しょうか。

g(x)2=(x3+380064x2+36112256070x+18062058502)(x5+x+3)
                  +253381(216682x4+127971x3-47795x2 -443442x-203717)

 pは、5×154を頑張ればどうにか暗算でも可能な範囲でしたが、g(x)はさすがに6桁×6桁が
何度も必要になるので私では紙とペンが必要ですね。
(といいながら実際はwolfram先生に掛算と剰余と一次不定方程式の計算作業だけお願いし
ましたが)

 あと、手計算だと、出てきたpが素数かどうかの判定が困難でした。
(これもwolfram先生にお願いしました)

 といっても私がとった方法だとpが素数であることを一度も利用していないはずなので、あん
まり影響なさそうですが。合成数だったら素因数1つ以外をb(x)に押し込んでしまえばいいわ
けですし。


 GAI さんからのコメントです。(平成27年4月20日付け)

 DD++さんの結果にビックリです。

x8 + 380064x7 + 36112256070x6 + 18062058502x5 + 54903101843x4
              + 32425800018x3 + 24003051367x2 + 14039049310x + 2568158329

で両辺一致。DD++さん、凄い!

 どこからこんな大きな数字を探し出せるんですか?計算が得意な計算ソフトでヒントの4次
式g(x)を設定して、g(x)2をx5+x+3で割った余りの変化を見ようとしていたんですが、g(x)の係
数の範囲をどう縛ったらいいのか検討もつかなく、闇雲に探していくハメになり、昨日も一晩
中動かしてはいたんですが、まったく引っ掛からず途方に暮れていたら、このDD++さんの巨
大な係数の結果に(というか190032と47523の係数の開きが全く予想できない。)見つからな
い筈だよな〜の感想を抱きました。

 これって、f(x)を与えれば素数pはアルゴリズム的に求まるものなんですか?


 DD++さんからのコメントです。(平成27年4月20日付け)

 あいにく私は1から253381まで順に試していくほどの暗算スペックは持ち合わせておりませ
んので、もちろんアルゴリズムを用いて求めております。g(x)も数字が大きいため算数的には
面倒ですが数学的にはさほど苦労なく出ました。

 ただし、どんな式でもこの計算結果が必ず素数になるかは私はわかっていませんし(たぶん
ならない気がする)、f(x)が既約でなかった場合にどういう問題が生じるのかもよくわかってい
ません。

 そもそもこの計算が絶対にうまくいくのかという点についても1つ引っかかっている部分があ
り、さらにはこの方法で求めたg(x)が一般にI_pに属さないかどうかも不明です。(この部分で
素数であることが重要なのか?)つまり、「今回はたまたま困難に出くわさなかっただけ」感が
強いです。

 一応、GAIさんへのヒントとして、f(x)=x3+x+1の場合の例について、以下に沿って考えてみ
るとヒントになると思います。

(1) p=31が天から降ってきたものと思って、3次合同方程式 f(x)≡0 (mod 31)を解いてみま
  しょう。

(2) a(x)=x-3を掛けて、4次合同方程式 a(x)f(x)≡0 (mod 31) とすると、何が起こるでしょう
  か?

(3) (2)のようなことを起こすのに、a(x)の次数をf(x)の次数より低いものにしたければ、f(x)は、
  p に対してある条件を満たす必要があります。その条件とは?

(4) 突然ですが高校2年生レベルの数学です。三次式 x3+kx-2 が重根をもつような実数kの
  値はどのような手順で求めたらよいでしょう?

(5) (4)を踏まえて、p=31はどこから出てきたのでしょう?


 GAI さんからのコメントです。(平成27年4月20日付け)

 アドバイスの流れで進んでみました。

(1)について、 f(x)=x3+x+1 に対して、f(0)、f(1)、f(2)、f(3)、・・・、f(30) を計算すると、
 f(3)=31≡0 (mod 31)、f(14)=2759≡0 (mod 31) から、f(x)≡0 (mod 31) の解は、
 x=3、14 (14は重解)

(2)について、a(x)f(x)=(x-3)(x-3)(x-14)2=(x-3)2(x-14)2={(x-3)(x-14)}2≡0 (mod 31)
 と完全平方型が出来る。

(3)について、a(x)f(x)+pb(x)={g(x)}2  (mod p) が成立するためには、
 a(x)f(x)≡{g(x)}2={(x-3)(x-14)}2 (mod p)
 即ち、g(x)=(x-3)(x-14)=x2-17x+42≡x2+14x+11 と決めておく。

(4)について、議論がそれたかも知れないので、このことがどれに繋がるのか分かりま
せんでした。単に判別式から(x^3+p*x+q=0 の判別式Dは、公式的にD=-4p3-27q2

 重根を持つときは -4k3-27(-2)2=-4(k3-27)=0 から、k=3

(5)について、  a(x)f(x)+pb(x)={g(x)}2  (mod p) の関係より、
 (x-3)(x3+x+1)+(pを含む余り)=(x2+14x+11)2
  即ち、pは、(x2+14x+11)2を f(x)=x3+x+1 で割った余りの中に含まれるから、
 x=3を代入して、0+(pを含む余り)=32+14・3+11 (2乗は省略)=62=2・31
  これよりp=31

*(4)の経過を飛ばしてしまったので何処かおかしな部分がありそうな感じです。p=31が天か
 ら降ってきたものは何時までも天からしか来ていないような気分がしています。ご指導お願
 いします。


 DD++さんからのコメントです。(平成27年4月20日付け)

 (3)について、意図した方向とずれてしまいました。例えば、普通の関数の世界では、
f(x)=x3+x+1に何かを掛けて完全平方にしたければ、a(x)=x3+x+1にしなくてはいけません。
それは、mod 29の世界でも、mod 37の世界でも同じ。ところが、mod 31の世界でだけは3次
式ではなく、x-3という1次式で済んでいます。それは、mod 31のときに何かが起こるからな
わけですが、さて何が起こったのでしょう?というのがここの意図でした。

 つまり、「31」というのは「どんな数を法とすればこれが起こるか」を解いた結果だったわけ
です。じゃあ、それをどうやって求めたらいいの?という話のヒントが次の話。

 (4)について、3次だと確かに判別式使えば済んでしまいますね。(高校2年生レベルでは
ないですが) これは誘導が不適切でした。では、一般に、n次の場合でも通用する方法は?
(センター試験のIIBの大問2にいるアレですよ、アレ。)


 GAI さんからのコメントです。(平成27年4月20日付け)

 (3)の再チャレンジです。

 f(x)=x3+x+1 に対して、x-3を掛けた(x-3)f(x)が完全平方を素数pに対して、(x-3)f(x)+p*b(x)
の形式で作れるのだから、このことは、f(x)にはmod p でx-3の因数を含む事を意味する。
即ち、f(x)≡0 (mod p)は、x=3を解に持つ。ここに、f(3)=33+3+1=31 より、p=31であればよい。

 (4)について、逆に実際、mod 31ではf(x)≡0であるxは、x=3、14 なのだから、f(x)が、mod 31
で、x=14を重根として含んでいれば、(x-3)f(x)は完全平方式となれる。
 そこで、 f(14)=143+14+1=2759=31*89 、f'(14)=3*142+1=589=19*31 から、mod 31 では
f(14)=f'(14)≡0 即ち、f(x)は重根(x-14)2を含む。

 以上のことから、題意を満たすa(x)、b(x)、p、g(x)が求まる。


 DD++さんからのコメントです。(平成27年4月20日付け)

 (3)について、「(x-a)f(x)が完全平方になるならば、f(x)≡0 (mod p) は、x=aを解に持つ」
では、逆が成り立ちません。逆も真になるためにはもう一声。というか、もう一声の方がこの
問題のほぼ全てなのですが。

 「f(x)≡0 (mod p) は、x=3を解に持つ。ここに、f(3)=33+3+1=31 より、p=31であればよい。
を見て、なんとなくGAIさんとのすれ違いが見えてきました。f(3)を計算したら「31」だったから、
p=31としたとお考えなら、それは逆です。上の「もう一声」が成立するのが、p=31だったから、
f(x)≡0 (mod p)の解として「3」が出てきて、掛けるべき一次式が「x-3」と決まったのです。

 少しずつですが確実にゴールに近づいてはいますので、頑張ってください。


 GAI さんからのコメントです。(平成27年4月21日付け)

 p=31が特別である意味を感じるために、計算助手のコン君に手伝って貰って、素数p (200
までの範囲の全てで調査してみました。)

 f(x)=x3+x+1に対して、f(0)、f(1)、f(2)、f(3)、・・・、f(p)を計算してみて、これが素数pで割れる
xがいくつ存在しているかを調査しました。

 すると、各pに対し、タイプA  0個のもの:
2,5,7,19,41,59,71,97,101,103,107,109,113,157,163,191,193

タイプB  1個のもの:*括弧内はxの値
3(1),11(2),13(7),17(11),23(4),29(26),37(25),43(38),53(36),61(37),73(23),79(11),83(35),89(14),
127(86),137(66),139(105),151(121),167(23),179(149),181(140),197(133),199(110)

タイプC  2個のもの:
31(3,14)

タイプD  3個のもの:
47(25,34,35),67(13,58,63),131(5,51,75),149(67,93,138),173(45,136,165)

と4つに分類できました。

 タイプAなら、このグループの素数pに対しては、x3+x+1≡x3+x+1 (mod p)
 同じくタイプBなら、x3+x+1≡(x+a)(x2+bx+c) (mod p)
 同じくタイプCなら、x3+x+1≡(x+a)(x+b)2 (mod p)
 同じくタイプDなら、x3+x+1≡(x+a)(x+b)(x+c) (mod p)

の構造を作れるわけだから、この中の唯一、p=31に限って、x3+x+1≡(x+a)(x+b)2  (mod p)
が起こる。調査の結果、p=31だったので、(x-3)(x-14)2に見合うx-3をf(x)に掛ける操作が発
生した。

@ここで疑問

 どうしたら「31」が特別であるのかをこんな大がかりな調査で認識せずに済ませられるのか?

p=31が重根を持つと判断したとしても、x3+x+1≡(x-3)(x-14)2 (mod 31)ではなく
x3+x+1≡(x-3)2(x-14) (mod 31) となり、(x-14)f(x)とする恐れはないのか?
このタイプを分類できる何か指標はないのか?


 DD++さんからのコメントです。(平成27年4月21日付け)

 疑問について、そこで、ヒントの(4)になるわけですよ。

「mod pで何らかの重根kをもつ」としたときに、f(k)≡0 (mod p) と f'(k)≡0 (mod p) という連立
合同方程式になって、それを解くとp=31とk=14がセットで出てきます。


 GAI さんからのコメントです。(平成27年4月21日付け)

 f(x)=x3+x+1 、f'(x)=h(x)=3x2+1 で、

gp>forprime(p=2,200,for(x=1,p,if(f(x)%p==0 && h(x)%p==0,print(p,";",x))))
31;14

と私の愚問が一発で解決しました。DD++さんが指摘されていた意味を漸く理解できました。
これでやっと重複解を持つ時が本質であり、その因数分解形状の有り様の探し方が見えま
した。遅遅として進まぬ私の理解に最後までお付き合い頂いて、誠に恐縮です。

 f(x)=x3-x2-1 の例題で実験したら上手くいったのでやっと腹に納まった気がしました。あり
がとうございました。


 DD++さんからのコメントです。(平成27年4月21日付け)

 連立合同方程式を解くところで、機械任せでも6ケタくらいならなんとでもなるんでしょうが、
暗算や手計算の場合はこの先にもう一つコツが必要なので紹介しておきます。

 x3+x+1≡0 と 3x2+1≡0 から、 3(x3+x+1) - x(3x2+1) = 2x+3 ≡ 0
 4(3x2+1) - 3(2x-3)(2x+3) = 31 ≡ 0

と次数を下げていくことで、pが31の約数であること、つまりp=31が計算でき、2x+3≡0 (mod31)
から、x=14 が出てきます。

 f(x)=x5+x+3 の場合も5×154を計算するのさえ突破できれば暗算でも p=5*154+44=253381
と重根 190032 にたどり着けます。その後、g(x) の計算は暗算だと無謀ですけど。

 私が引っかかっていると言ったのは、最後の一次不定方程式は必ず解けるのかという点。

 ax≡b (mod p) は、a と p が互いに素なら解けるわけで、p が素数ならばテキトーに式を選
んでいた場合でも問題なく解ける確率が大きいことはわかりますが、必ずかというと自信があ
りません。そのあたり、私は空舟さんの解説待ちにしてます。


 GAI さんからのコメントです。(平成27年4月21日付け)

 f(x)=x5+x+3 に対して、p=253381 の素数を用いて、

  a(x)=x3 + 380064x2 + 35573061302x + 26950157220

  b(x)= 2x7 + 1106403x6 + 226559999084x5 + 21929807311517491x4
     + 1061043323872454253401x3 + 20043601884726758146075910x2
      + 30368491163344508945612034x + 11503449432723390971571540

  g(x)=x4 + 443413x3 + 59649735638x2 + 2253544810577618x + 1707265509729780

とすることで、 a(x)・f(x)+p・b(x)={g(x)}2 が成立する、ではだめですか?


 DD++さんからのコメントです。(平成27年4月21日付け)

 別に構わないと思いますが、それって本質的に同一解ではないかと思います。b(x)というの
が意味的には「≡0 (mod p)」を「=0」に変えたときの辻褄合わせなので、a(x)やg(x)の係数を
pの倍数ずつ変えても対応するb(x)が存在して等式を作ることが可能なのは明らかなので。

 つまり、別の見方をすると、最初にGAIさんが「係数の範囲をどう指定したらいいか」とおっ
しゃっていたのは「0からp-1までに指定しておけばよかった」というのが答えです。


 GAI さんが、2次関数と素数の関係について調べられました。(平成27年4月22日付け)

 空舟さんからの出題が面白かったので、一般に与えられた関数f(x)に対して適当に選ぶ素
数pはどんなものなんだろうか?

 f(x)を2次関数(ただし、x2の係数は1)に限定して調査してみました。

 f(x)=x2+a*x+b に対して、どんな素数pが選択できるかの調査結果
<ただし、0≦a、b≦10 の範囲>


 DD++さんからのコメントです。(平成27年4月22日付け)

 空舟さんの問題で、私は、「f(x)≡0 (mod p) が重解をもつような素数 p を探せばよい」とい
うことを考えました。しかし、「そのような p が必ず存在するか」はどうも偽だったようです。

 f(x)=13x3-13x+5 の場合について考えます。f(x) ≡ 0 (mod p) が重解をもつとすると、
f(x) ≡ f'(x) ≡ 0 (mod p) が解を持つわけですが、このとき、恒等式

   (78x2+45x-52)f'(x) - (234x+135)f(x) = 1 より、 0 ≡ 1 (mod p)

となってしまい、これを満たす素数pは存在しません。念のため p=13 に取った場合について
も考えると、任意の g(x) について、

  g(x) = {8g(x)}(13x3-13x+5) - 13{(8x3-8x+3)g(x)}

なので、「g(x)∈I_pではないが、」の部分を満たす g(x) が存在しません。

 さて、では f(x)=13x3-13x+5 に対する p と g(x) は?また、それを発見する手段とその理屈
は?


 GAI さんからのコメントです。(平成27年4月23日付け)

 p=5、g(x)=3x3+2x で、a(x)=3x3+15x2+12x 、b(x)=-6x6-39x5-21x4+36x3+17x2-12x ならば、
a(x)・f(x)+p・b(x)=g(x)2 (g(x)はI_5に属さないが、g(x)2∈I_5を満たす。)

 とにかく朝から (ax+b)f(x)+p・b(x)型が完全平方となるように、b(x)=x4+mx3+nx2+・・・とb(x)
を4次式と仮定して、前の展開式から生じる13ax4との和から、(13a+p)x4の係数13a+p が平
方数になる組合せをとると、

(a,p)=(1,3)、(8,17)、(1,23)、(4,29)、(6,43)、(6,3)、(16,17)、(2,23)、(20,29)、(14,43)、(22,3)、
   (43,17)、(26,23)、(35,29)、(41,43)

などが考えられたので、それぞれから生まれるx2の係数が整数となる2次式の候補g(x)を
それぞれ調査していきましたが、結局見つかるg(x)はI_pの世界にどっぷり浸かっており、そ
れぞれの努力は水の泡となりました。
(後から考えると、既にDD++さんが重根は持たないよと指摘されていたから当然なのか。)

 そこで改めて、f(x)のそれぞれの素数pで如何なる形と同値かを調べていくと、

f(x)≡x3+x+1        (mod 2)
    ≡x3+2x+2       (mon 3)
    ≡3x(x+1)(x+4)   (mod 5)
    ≡6(x3+6x+2)    (mod 7)
    ≡2(x3+10x+8)   (mod 11)
    ≡5              (mod 13)
    ≡13(x3+16x+3)  (mod 17)
    ≡13(x3+18x+15) (mod 19)
  ・・・・・・・

 ここからは理由はわかりませんが、何故かp=5を使いたくなった。つまり、

 mod 5で3x(x+1)(x+4)と同値とみなせるならf(x)にこれを掛けてみよう!

 そこで、a(x)=3x(x+1)(x+4)=3x3+15x2+12x が生まれました。mod 5 で行くと

  a(x)f(x)+5b(x)={3x3+15x2+12x}2

 ところが、このままでb(x)を算出(b(x)=[{3x3+15x2+12x}2-a(x)f(x)]/5) してみると、b(x)は3で
くくれてしまい、結局g(x)に相当する部分が、

  a(x)f(x)+3b(x)={3x3+15x2+12x}2

は満たすが、g(x)が条件に反する状態になってしまいました。そこで、3x3+15x2+12x の式を
mod 5 で見た式 ≡3x3+0・x2+2x=3x3+2x 変更してみました。

 (3x3+15x2+12x)(13x3-13x+5)+5b(x)=(3x3+2x)2

が成り立つか?あとは、b(x)について解いてみると、

  b(x)=-6x6-39x5-21x4+36x3+17x2-12x

となり、微かにb(x)の係数は全てが3の倍数になることを逃れて、g(x)=3x3+2x にとることが
出来ました。

 理由なんかよく分かりません。とにかくいろいろなことをあれこれいじくっていたら、偶然そ
れらしきpとg(x)に出くわした感じです。

 f(x)=13x3-13x+5 で、
a1(x)=13x3 + 403x2 + 3614x + 8840
b1(x)=-169x5 - 1495x4 - 3536x3 + 1461x2 + 3130x - 1425
g1(x)=13x3 + 18x + 5
素数p=31

を用いても、a1(x)f(x)+31・b1(x)={g1(x)}2 は成立しませんか?


 DD++さんからのコメントです。(平成27年4月23日付け)

 mod 5 の話でなぜ「係数が3の倍数だとダメ」なのかよくわかりませんが、なんにせよ

  3x3+2x = (13x3-13x+5) + 5(-2x3+3x-1) から g(x)∈I_5

になってます。

 この話は、「f(x)とpを同時に法とすると、それ自身はゼロじゃないけど平方がゼロになるも
のが必ず存在する(らしい)」という話で、a(x)≡f(x) にするパターンは結局ゼロの2乗を作る
だけなので、必然的に g(x)∈I_p となり失敗すると思います。


 空舟さんからのコメントです。(平成27年4月23日付け)

 DD++さんが書いてくださったことぐらいしか用意してなかったです。背景は、代数体

2. ミンコフスキーの定理  有理数体と異なる代数体の判別式は、±1 と異なる。
                (つまり、|D_K| > 1 となる。)

のような定理でした。

 そこで、判別式の素因数をpとして採用すれば良いと考えていました。

 岩波講座の現代数学の基礎シリーズの「数論2―類体論とは」のどこかで、それっぽいこと
を読んで、今回の主張はそれを思い出して自分の言葉に直したものでした。そういうわけで、
最高次係数が1でない場合の指摘については私の不備でした。f(x) = 2x2 - 1 とかでも同様
のことがおきそうです

 「最後の一次不定方程式は必ず解けるのか」の考察もしてなかったのですが、例えば、共
通因子が既約な2次式のような場合には一次不定方程式の解は得られないと思いました。

 当初の問題の解説は今更不要かもしれないですが:

 f(x)=x5+x+3=0 とおく。f(a)≡0、f'(a)≡0 (mod p) が共通解を持つことを目的とする。

 f'(a) = 5a4+1≡0 、5f(a)-af'(a) = 4a+15≡0

 44・f'(a) = 4(4a)4+44≡4・(-15)4+44 = 253381≡0

 これは素数なので、p=253381 とするしかない。4a+15≡0 (mod 253381) を解いて、
a≡190032 を得る。

 従って、 f(x)を、(x-190032)2で割った余りは、pの倍数となるはず。

f(x) = (x-190032)2(x3+380064x2+108336483072x+27449864734851072)
                +253381・(25733740371679501x-3912187320248799147225)

従って、

g(x) ≡ (x-190032)(x3+380064x2+108336483072x+27449864734851072) (mod 253381Z[x])

が条件を満たします。


  以下、工事中!