次の回答は、元々Gilのブログのコメントとして投稿されたものです
(1)レッツ我々が想定番号フィールド、であるαがモニック最小多項式有するF ∈ Z [ X ]を。その後、整数O Kの環の要素をαの多項式として、または積分基底で表すことができます。2つは同等です。K=Q(α)αf∈Z[x]OKα
今固定(1)のように上の問題から多項式時間の減少がありますKにおける問題のQは。計算(たとえば、理想とZの交差または多項式mod pの因数分解)が多項式時間で実行できることを確認するには、前の回答で言及したCohenの本を参照してください。KKQZp
αの判別式(fの判別式)を分割する各有理数素数事前計算として、pの上にあるO Kのすべての素数を見つけます。pαfOKp
理想所与素数判定のために(2)、せたp ∈ Zは、ようなもので∩ Z = P Z(これは多項式時間で計算することができるとのビット数pが入力多項式です)。pが素数かどうかを多項式時間でチェックします。そうでない場合、aは素数ではありません。はいの場合、事前計算またはf mod pを因数分解することにより、pの上にあるO Kの素数を見つけます。いずれにしても、aが素数である場合、それらの素数の1つでなければなりません。a◃OKp∈Za∩Z=pZppaOKpfpa
素数に因数分解について(3A)、(6A)は、理想的所与◃ O Kがそのノルム見つけるY = N K Q()= [ O K:A ]を。繰り返しますが、これは多項式時間で見つけることができ、結果として大きすぎません。因子YにおけるZ(いずれかの古典的またはショアのアルゴリズムを使用して、あなたが望む削減によって異なります)。これはyを分割する有理数素数のリストを与えるため、2のようにyを分割するO Kの素数のリストを見つけることができます。以来| ya◃OKy=NKQ(a)=[OK:a]yZyOKyこれは aを分割する素数のリストを与えます。最後に、素数が与えられた理想を除算する指数を決定するのは簡単です。a|yOKa
(3b)、(6b)しかし、ギルは素数ではなく既約への因数分解を望んでいます。それはの素因数分解所与ことが判明、効率的に構築することが可能である1つの因数分解X線の既約元にO K。このため、h Kをクラス番号とし、与えられた理想の理想クラスを効率的に計算できることに注意してください。ここでxの既約除数を見つけるためにh Kを選択しますxOKxOKhKxhKの因数分解から(おそらく繰り返しで)プライム理想をx。ハト穴の原理により、これらのサブセットの一部はクラスグループのアイデンティティに乗算されます。そのような最小限のサブセットを見つけます。その積は、既約要素によって生成される主要な理想です。除算、この要素によって、分解と繰り返しから、関連する理想を削除します。因数分解の要素がh K未満の場合、すべての因子の最小サブセットを取得します。xhK
(4)因数分解を既約に数えることは可能だと思いますが、これは少し余分な組み合わせ論です。それを解決する時間をください。一方、それらのすべてを決定することは、一般に指数関数的に多くのそのような因数分解があるため、準指数的因数分解アルゴリズムのコンテキストでは興味深いものではありません。
(5)わからない。