背景(定義にスキップ)
オイラーは、複素数に関する美しい定理を証明しました:e ix = cos(x)+ i sin(x)。
これにより、de Moivreの定理が証明しやすくなります。
(e ix)n = e i(nx)
(cos(x)+ i sin(x))n = cos(nx)+ i sin(nx)
2次元ユークリッド平面を使用して複素数をプロットできます。水平軸は実数部を表し、垂直軸は虚数部を表します。このように、(3,4)は複素数3 + 4iに対応します。
極座標に精通している場合、極座標では(3,4)は(5、arctan(4/3))になります。最初の数値rは、原点からのポイントの距離です。2番目の数値θは、正のx軸からポイントまでの反時計回りの角度です。その結果、3 = rcosθおよび4 = rsinθです。したがって、我々は再び= R +cosθとsinθとRI = R(cosθとsinθと+ I)として3 + 4Iを書き込むことができるIθを。
複素方程式z n = 1を解きましょう。nは正の整数です。
z = reiθとします。次いで、Z N = R N E inθ。原点からのz nの距離はr nで、角度はnθです。ただし、原点から1の距離は1であり、角度は0であることがわかっています。したがって、r n = 1およびnθ= 0です。ただし、2πをさらに回転させても、2πは完全な円であるため、同じポイントに到達します。したがって、r = 1およびnθ=2kπとなり、z = e2ikπ/ nが得られます。
私たちは、私たちの発見を言い換える:Zへの解決策のn = 1は、z = eは2ikπ/ N。
多項式は、その根で表現できます。たとえば、x 2 -3x + 2 の根は1と2なので、x 2 -3x + 2 =(x-1)(x-2)です。同様に、上記の発見から:
ただし、その製品には確かに他のnのルートが含まれていました。たとえば、n = 8を使用します。z 4 = 1はz 8 =(z 4)2 = 1 2 = 1を意味するため、z 4 = 1 の根もz 8 = 1の根の中に含まれます。z 2 = 1の場合、z 6 = 1になります。同様に、z 3 = 1の場合、z 6 = 1です。
z n = 1に固有の根を抽出したい場合、1以外の共通の除数を共有するためにkとnが必要です。または、d> 1で共通の除数dを共有する場合、zは(k / d)zのルートn / d = 1。上記の手法を使用して、その根に関して多項式を書くと、多項式が得られます。
この多項式は、dがnの約数であるz n / d = 1の根を削除することによって行われることに注意してください。上記の多項式には整数係数があると主張します。z n / d -1の形式の多項式のLCMを考えます。d> 1で、dはnを除算します。LCMのルートは、まさに削除したいルートです。各コンポーネントには整数係数があるため、LCMには整数係数もあります。LCMはz n -1を除算するため、商は整数係数を持つ多項式でなければならず、商は上記の多項式です。
z n = 1 の根はすべて半径1であるため、円を形成します。多項式は、nに固有の円の点を表すため、ある意味で、多項式は円のパーティションを形成します。したがって、上記の多項式は、n番目のサイクロトミック多項式です。(シクロ-=円;トム-=切断)
定義1
で示されるn番目の循環多項式は、x n -1 を除算する整数係数を持つ一意の多項式であり、k <nの場合はx k -1ではありません。
定義2
サイクロトミック多項式は、次のような、正の整数ごとに1つずつの多項式のセットです。
ここでk | nは、kがnを除算することを意味します。
定義3
n番目のサイクロトミック多項式は、多項式x n -1をx k -1 の形式の多項式のLCMで除算したものです。ここで、kはnとk <nを除算します。
例
- Φ 1(X)= X - 1
- Φ 2(X)= X + 1
- Φ 3(X)= X 2 + X + 1
- Φ 30(X)= X 8 + X 7 - X 5 - X 4 - X 3 + X + 1
- Φ 105(X)= X 48 + X 47 + X 46 - X 43 - X 42 - 2× 41 - X 40 - X 39 + X 36 + X 35 + X 34 + X 33 + X 32 + X 31 - X 28 -x 26 -x 24 -x 22 -x 20 + x 17 + x 16 + x 15 + x 14 + x 13 + x 12 -x9 - X 8 - 2× 7 - X 6 - X 5 + X 2 + X + 1
仕事
正の整数を指定するとn
、n
上記で定義した-thサイクロトミック多項式を妥当な形式で返します(つまり、係数のリストが許可されます)。
ルール
正しい値に丸める限り、浮動小数点/複素数を返すことができます。
得点
これはcode-golfです。バイト単位の最短回答が優先されます。