2
フロートなしのアイゼンシュタイン数の表現
具体的には、2次フィールドを使用する必要があるプロジェクトがあります。具体的にはの形式でます。a+b−3−−−√a+b−3a + b \sqrt{-3}a,b∈Qa,b∈Qa,b \in \mathbb{Q} たとえば、次はアイゼンシュタイン整数の素数です。 セージは使いたくない。 組み込む独自のデータ型を記述したいと思いnumpyます。PARIは便利ですが、Pythonとの互換性はありません。 これらのオブジェクトの追加はかなり明確です(a1+b1−3−−−√)+(a2+b2−3−−−√)=(a1+a2)+(b1+b2)−3−−−√(a1+b1−3)+(a2+b2−3)=(a1+a2)+(b1+b2)−3(a_1 + b_1 \sqrt{-3}) + (a_2 + b_2 \sqrt{-3}) = (a_1 + a_2) + (b_1+b_2) \sqrt{-3} 乗算は少しデリケートですが、ハードコーディングもできます (a1+b1−3−−−√)×(a2+b2−3−−−√)=(a1a2−3b1b2)+(a1b2+a2b1)−3−−−√(a1+b1−3)×(a2+b2−3)=(a1a2−3b1b2)+(a1b2+a2b1)−3(a_1 + b_1 \sqrt{-3}) \times (a_2 + b_2 \sqrt{-3}) = (a_1 a_2 - 3 b_1 b_2) + (a_1 b_2 + a_2 b_1)\sqrt{-3} 私のデータ型も除算に対応する必要があります。簡単にするために、逆数を取ってみましょう: 1a+b−3−−−√=a−b−3−−−√a2+3b21a+b−3=a−b−3a2+3b2 …