# randomKRationalPoint -- Pick a random K rational point on the scheme X defined by I

## Synopsis

• Usage:
randomKRationalPoint I
• Inputs:
• I, an ideal, in a polynomial ring over a finite ground field K
• Outputs:
• an ideal, of a K-rational point on V(I)

## Description

If X has codimension 1, then we intersect X with a randomly chosen line, and hope that the decomposition of the the intersection contains a K-rational point. If n=degree X then the probability P that this happens, is the proportion of permutations in $S_n$ with a fix point on $\{1,\ldots,n \}$, i.e. $$P=\sum_{j=1}^n (-1)^{j-1} binomial(n,j)(n-j)!/n! = 1-1/2+1/3! + \ldots$$ which approaches $1-exp(-1) = 0.63\ldots$. Thus a probabilistic approach works.

For higher codimension we first project X birationally onto a hypersurface Y, and find a point on Y. Then we take the preimage of this point.

 i1 : p=nextPrime(random(2*10^4)) o1 = 107 i2 : kk=ZZ/p;R=kk[x_0..x_3]; i4 : I=minors(4,random(R^5,R^{4:-1})); o4 : Ideal of R i5 : codim I, degree I o5 = (2, 10) o5 : Sequence i6 : time randomKRationalPoint(I) -- used 0.361688 seconds o6 = ideal (x - 53x , x + 8x , x - 4x ) 2 3 1 3 0 3 o6 : Ideal of R i7 : R=kk[x_0..x_5]; i8 : I=minors(3,random(R^5,R^{3:-1})); o8 : Ideal of R i9 : codim I, degree I o9 = (3, 10) o9 : Sequence i10 : time randomKRationalPoint(I) -- used 0.591515 seconds o10 = ideal (x - 27x , x - 16x , x - 9x , x + 44x , x - 52x ) 4 5 3 5 2 5 1 5 0 5 o10 : Ideal of R

The claim that $63 \%$ of the intersections contain a K-rational point can be experimentally tested:

 i11 : p=10007,kk=ZZ/p,R=kk[x_0..x_2] o11 = (10007, kk, R) o11 : Sequence i12 : n=5; sum(1..n,j->(-1)^(j-1)*binomial(n,j)*(n-j)!/n!)+0.0 o13 = .633333333333333 o13 : RR (of precision 53) i14 : I=ideal random(n,R); o14 : Ideal of R i15 : time (#select(apply(100,i->(degs=apply(decompose(I+ideal random(1,R)),c->degree c); #select(degs,d->d==1))),f->f>0)) -- used 4.73513 seconds o15 = 58

## Ways to use randomKRationalPoint :

• "randomKRationalPoint(Ideal)"

## For the programmer

The object randomKRationalPoint is .