|
|
A005524
|
|
Values k arising from a construction of Hirschfeld of k-arcs on elliptic curves over GF(q), where q = A246655(n) is the n-th prime power > 1.
(Formerly M0475)
|
|
2
|
|
|
2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 21, 22, 25, 27, 28, 30, 32, 34, 37, 38, 40, 42, 44, 45, 48, 50, 51, 54, 58, 61, 62, 64, 65, 67, 72, 74, 75, 75, 77, 80, 81, 87, 88, 91, 94, 96, 98, 100, 103, 104, 109, 110, 113, 114, 120, 126, 129, 130, 132, 135, 136, 137, 141
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Let E be an elliptic curve over GF(q). A k-arc on E is a set of k points in E(GF(q)) such that no three are collinear (in the projective plane over GF(q)). Hirschfeld showed that if the number #E(GF(q)) of GF(q)-rational points on E is even, then there exists a k-arc on E for k = #E(GF(q))/2. Here, a(n) denotes the largest possible k arising from this construction, hence a(n) = floor(A005523(n)/2). Note that a(n) is not necessarily the maximal k such that there exists a k-arc on an elliptic curve over GF(q); e.g. the elliptic curve y^2 = x^3 + x + 1 over GF(5) contains a 6-arc consisting of the points {(0,1), (3,1), (4,2), (4,3), (0,4), (3,4)}. - Robin Visser, Aug 26 2023
|
|
REFERENCES
|
J. W. P. Hirschfeld, Linear codes and algebraic curves, pp. 35-53 of F. C. Holroyd and R. J. Wilson, editors, Geometrical Combinatorics. Pitman, Boston, 1984. See M_q(1) on page 51.
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
|
|
LINKS
|
Mathematica Information Center, Item 5175, for full code.
|
|
FORMULA
|
|
|
EXAMPLE
|
For n = 4, the elliptic curve E : y^2 = x^3 + 3*x over GF(5) has 10 rational points. As this is the maximal number of rational points an elliptic curve over GF(5) can have, this implies a(4) = 10/2 = 5. - Robin Visser, Aug 26 2023
|
|
PROG
|
(Sage)
for q in range(1, 1000):
if Integer(q).is_prime_power():
p = Integer(q).prime_factors()[0]
if (floor(2*sqrt(q))%p != 0) or (Integer(q).is_square()) or (q==p):
print(floor((q + 1 + floor(2*sqrt(q)))/2))
else:
print(floor((q + floor(2*sqrt(q)))/2)) # Robin Visser, Aug 26 2023
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|