각 필드 크기에 대한 기본 요소를 출력


16

유한 필드 의 프리미티브 요소 는 필드의 곱셈 그룹의 생성기입니다. 즉, alpha에서 F(q)가 원시적 인 경우 기본 요소라고 q−1화합의 일 루트 F(q). 이것은 0이 아닌 모든 요소가 (양의) integer F(q)와 같이 쓰여질 수 있음을 의미합니다 .alpha^ii

필드의 모든 요소는 F_{2^k}최대 또는 다의 k-1계수를 사용 하여 최대 다항식으로 쓸 수 있습니다 . 이 작업이 완료하기 위해서는, 여러분의 코드는 출력에 필요 기약 다항식 정도 사용하는 필드를 정의합니다.10k

이 작업은 F_{2^k}선택한 각 기본 요소를 k = 1 .. 32순서대로 출력하는 코드 작성입니다 .

출력은 k기본 요소 의 계수를 원하는 형식으로 나열한 다음 별도의 줄 k+1에 돌이킬 수없는 다항식 의 요소를 나열해야합니다 . k가능하면 각 값에 대한 출력을 분리하십시오 .

코드는 원하는 시간이 소요될 수 있지만 답변을 제출하기 전에 코드를 완료해야합니다.

유한 필드의 기본 요소를 반환하거나 요소가 기본인지 여부를 테스트하는 내장 함수 또는 라이브러리 함수를 사용할 수 없습니다.

들면 k = 1유일한 기본 요소이다 1.

k = 2우리 를 위해 F_4. 4 개의 요소는 {0, 1, x, x + 1}2 개의 기본 요소 xx + 1입니다. 그래서 코드는 출력 할 수 있습니다

1 1
1 1 1

예를 들어, 제 2 라인이이 경우 x^2+x+1계수를 갖는 돌이킬 수없는 다항식 인 계수로서 1 1 1.


4
예가 있습니까?
Okx

1
출력 한 정수의 비트로 인코딩 된 다항식 및 / 또는 필드 요소를 출력 할 수 있습니까?
orlp

@orlp 그렇습니다.

1
Pari / GP가 이것에 내장 된 유일한 언어라고 생각 합니다 .
alephalpha

답변:



4

Mathematica, 127 바이트

Do[For[i=2*2^n,PolynomialMod[x^Divisors[2^n-1]+1,i~IntegerDigits~2~FromDigits~x,Modulus->2]~Count~0!=1,i--];Print@{2,i},{n,32}]

설명:

엑스21x2n11xi1i2n1 .

산출:

8589934581111111111111111111111111111110101

x32+엑스31+엑스30+엑스29+엑스28+엑스27+엑스26+엑스25+엑스24+엑스23+엑스22+엑스21+엑스20+엑스19+엑스18+엑스17+엑스16+엑스15+엑스14+엑스13+엑스12+엑스11+엑스10+엑스9+엑스8+엑스7+엑스6+엑스5+엑스4+엑스2+1

{2,3}

{2,7}

{2,13}

{2,25}

{2,61}

{2,115}

{2,253}

{2,501}

{2,1019}

{2,2041}

{2,4073}

{2,8137}

{2,16381}

{2,32743}

{2,65533}

{2,131053}

{2,262127}

{2,524263}

{2,1048531}

{2,2097145}

{2,4194227}

{2,8388589}

{2,16777213}

{2,33554351}

{2,67108849}

{2,134217697}

{2,268435427}

{2,536870805}

{2,1073741801}

{2,2147483533}

{2,4294967287}

{2,8589934581}

이거 좋다. 나는 젤리 버전을 기대합니다 :)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.