Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News Sign UpSign In
| Download
Views: 113
Image: ubuntu2004
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 1 for 2*alpha^6 + alpha^5 + 3*alpha^4 + 4*alpha^3 + 4*alpha^2 + 3*alpha + 1 We have trace 0 for 2*alpha^6 + 2*alpha^5 + alpha^4 + 4*alpha^3 + alpha^2 + 3 We have trace 2 for 4*alpha^6 + 3*alpha^5 + 4*alpha^4 + alpha^3 + 3*alpha + 2 We have trace 0 for alpha^6 + 3*alpha^5 + 4*alpha^2 + alpha + 4 We have trace 4 for alpha^6 + alpha^5 + 3*alpha^3 + 3*alpha^2 + 2*alpha + 1 We have trace 4 for 2*alpha^6 + 2*alpha^5 + alpha^4 + 4*alpha^2 We have trace 2 for alpha^6 + 2*alpha^4 + 2*alpha^3 + 4*alpha^2 + alpha We have trace 3 for 2*alpha^6 + alpha^5 + 3*alpha^4 + 4*alpha^3 + 2*alpha^2 + alpha + 2 We have trace 1 for 2*alpha^6 + 2*alpha^5 + alpha^3 + 4*alpha^2 + 4*alpha + 1 We have trace 1 for 2*alpha^6 + 3*alpha^5 + 3*alpha^4 + 2*alpha^3 + 3*alpha^2 + 2*alpha + 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 [4, 0, 0, 2, 1, 0, 4, 2, 0, 4, 0, 1, 2, 1, 3, 2, 3, 4, 3, 2]
# 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)) # should be all -1's, but getting fractions ... BUG
230 361/2 257 487/2 355/2 463/2 155 463/2 272