in reply to Lunch Bunch arrangement problem
Try using the following gp script:
Save it in a file (say "ff.gp") and then invoke gp (it's an interactive environment for pari). A sample session might bemultable( p, P, g ) = { P = Mod(1,p) * P; g = Mod( Mod(1,p) * g, P ); d = poldegree( P ); n = p^d; /* This version makes B[2] = Mod( 1, P ) which is wrong B = concat( [0], vector( n-1, i, g^(i-1) ) ); The following line corrects the mistake */ B = concat( [0], vector( n-1, i, Mod( Mod(1,p), P ) * g^(i-1) ) ); R = vector( n ); for( i = 1, n, R[ 1 + subst( lift(lift( B[i] )), x, p )] = i-1; ); for( a = 1, p^d, ae = B[a]; for ( b = 1, p^d, be = B[b]; re = ae * be; print1( R[ 1 + subst( lift(lift( re )), x, p )], "\t" ); ); print; ); }
$ gp -q
? read ("/tmp/ff.gp")
? multable(2, x^3+x+1, x)
0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7
0 2 3 4 5 6 7 1
0 3 4 5 6 7 1 2
0 4 5 6 7 1 2 3
0 5 6 7 1 2 3 4
0 6 7 1 2 3 4 5
0 7 1 2 3 4 5 6
?
The arguments to multable are the characteristic, the polynomial generating the field and a generator of the multiplicative group. To generate the addition table, substitute with re = ae + be on the due line.
Cheers
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Lunch Bunch arrangement problem
by tall_man (Parson) on May 17, 2003 at 19:03 UTC |