CoCalc Public FilesLin_s_conjecture.sagews
Author: Konstantin Ziegler
Views : 46
p = 5
m = 3
n = 2*m + 1
q = p^n
var('alpha')
F.<alpha> = GF(q)
alpha == F.primitive_element()

alpha True
# Let's look at the trace and norm of 10 random elements in F

for i in range(10):
x = F.random_element()
print 'We have trace ', x.trace(), 'for ', x

We have trace 0 for 4*alpha^6 + 2*alpha^5 + alpha + 1 We have trace 4 for 3*alpha^6 + 2*alpha^5 + 4*alpha^4 + alpha^3 + alpha^2 + alpha + 4 We have trace 0 for 3*alpha^6 + 2*alpha^5 + 2*alpha^4 + 3*alpha^2 + 4*alpha + 2 We have trace 0 for alpha^6 + 3*alpha^5 + 3*alpha^4 + alpha + 4 We have trace 1 for 2*alpha^5 + alpha^4 + 4*alpha^3 + 2*alpha + 3 We have trace 4 for 4*alpha^6 + alpha^5 + alpha^4 + alpha^3 + alpha^2 + 2*alpha + 3 We have trace 0 for 3*alpha^6 + 3*alpha^4 + 3*alpha^3 + 4*alpha + 2 We have trace 3 for 4*alpha^6 + 2*alpha^5 + 3*alpha^4 + 3*alpha^3 + alpha^2 + alpha We have trace 3 for 2*alpha^6 + 3*alpha^5 + 4*alpha^4 + alpha^2 + 4*alpha + 2 We have trace 2 for alpha^5 + 3*alpha^4 + 3*alpha^3 + 4*alpha^2 + 1
# Produce ternary sequences from trace as suggested by Lin's conjecture
# print first 20 entries

S = [(alpha^i + alpha^((2*3^m + 1)*i)).trace() for i in range(q)]
print 'trace sequence', S[:20]


trace sequence [2, 0, 2, 0, 1, 2, 2, 1, 0, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2, 1]
# Check Lin's conjecture for k = 1,2,...,10 (instead of k = 1..N-1)

def auto_correlation(S, n, k, p=3):
omega = e^(2*pi*I/p)    # primitive p-th root of unity
N = p^n - 1             # period of S
return (sum([omega^(int(S[(i+k)%N] - S[i])) for i in range(N)])).real()

for k in range(1, 10):
print auto_correlation(S, n, k)

-1 -1 -1 -1 -1 -1 -1 -1 -1


# Headline


︠50a5a89d-867b-4419-bc4b-d2a0f6415092︠