︠f4d803a1-4bf8-4878-b87b-2ff53351ebc4s︠ p = 5 m = 3 n = 2*m + 1 q = p^n var('alpha') F. = GF(q) alpha == F.primitive_element() ︡d5ec9056-b303-4e97-87b7-9fc09eba5df7︡{"stdout":"alpha\n"}︡{"stdout":"True\n"}︡{"done":true} ︠63168609-08ce-40cd-843a-237513fc3b8es︠ # 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) ︡97f19e36-8d9f-40d1-961a-d2e9c9a4a430︡{"stdout":"We have trace 1 for 2*alpha^6 + alpha^5 + 3*alpha^4 + 4*alpha^3 + 4*alpha^2 + 3*alpha + 1\nWe have trace 0 for 2*alpha^6 + 2*alpha^5 + alpha^4 + 4*alpha^3 + alpha^2 + 3\nWe have trace 2 for 4*alpha^6 + 3*alpha^5 + 4*alpha^4 + alpha^3 + 3*alpha + 2\nWe have trace 0 for alpha^6 + 3*alpha^5 + 4*alpha^2 + alpha + 4\nWe have trace 4 for alpha^6 + alpha^5 + 3*alpha^3 + 3*alpha^2 + 2*alpha + 1\nWe have trace 4 for 2*alpha^6 + 2*alpha^5 + alpha^4 + 4*alpha^2\nWe have trace 2 for alpha^6 + 2*alpha^4 + 2*alpha^3 + 4*alpha^2 + alpha\nWe have trace 3 for 2*alpha^6 + alpha^5 + 3*alpha^4 + 4*alpha^3 + 2*alpha^2 + alpha + 2\nWe have trace 1 for 2*alpha^6 + 2*alpha^5 + alpha^3 + 4*alpha^2 + 4*alpha + 1\nWe have trace 1 for 2*alpha^6 + 3*alpha^5 + 3*alpha^4 + 2*alpha^3 + 3*alpha^2 + 2*alpha + 1\n"}︡{"done":true} ︠3df91cb7-71ee-406c-9de2-7c6995412a18s︠ # 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]) ︡81e6384c-db69-4f1f-a124-162a2a7b254a︡{"stdout":"trace sequence [4, 0, 0, 2, 1, 0, 4, 2, 0, 4, 0, 1, 2, 1, 3, 2, 3, 4, 3, 2]\n"}︡{"done":true} ︠545eeaa9-04ed-48f8-9419-4e45ea73f83es︠ # 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 ︡f14287de-2bfb-4b1a-836b-2100accec520︡{"stdout":"230"}︡{"stdout":"\n361/2"}︡{"stdout":"\n257"}︡{"stdout":"\n487/2"}︡{"stdout":"\n355/2"}︡{"stdout":"\n463/2"}︡{"stdout":"\n155"}︡{"stdout":"\n463/2"}︡{"stdout":"\n272"}︡{"stdout":"\n"}︡{"done":true} ︠2916d9f5-3feb-414b-a9e6-4781a4973cbb︠