Izolez problema din cele de mai sus si introduc notatie in ea, ca sa-mi fie deja usor sa-mi dau drumul. Ma leg de urmatoarea problema care este usor de rezolvat cu computerul...
[Citat]
(aproximativ)
Fie p un numar prim. Consideram in cele ce urmeaza mai multe matrici cu intrari in ZZ / p, inelul de intregi modulo p.
Fie n natural.
Consideram matricea
A( n, p )
de marime nxn
care are pe linia i si coloana j numarul
i^j + j^i modulo p.
Din cauza numarului finit de valori pe care le pot lua i,j modulo p
si a numarului finit de valori pe care le pot lua puterile lor modulo eulerphi(p),
avem o repetare periodica de linii/coloane,
deci exista o valoare maxima a lui n pentru care determinantul matricei A( n,p ) este nenul. Notam acest maxim cu n(p).
Sa se determine n(3).
Sa se determine n(5).
Sa se determine n(7).
|
Sa vedem cum stau lucrurile cu urmatoarele numere prime, de exemplu 5 si 7.
Pentru 5 ma incumat sa scriu toata matricea 20x20... cod sage:
sage: def A( n,p ): return matrix( IntegerModRing(p), n, n, [ [ i^j+j^i for i in [1..n] ] for j in [1..n] ] )
....:
sage: A(20,5)
20 x 20 dense matrix over Ring of integers modulo 5
sage: print A(20,5).str()
[2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1]
[3 3 2 2 2 0 2 0 3 4 4 0 1 0 3 2 1 3 4 1]
[4 2 4 0 3 0 0 3 2 4 3 4 0 3 2 2 1 1 1 1]
[0 2 0 2 4 2 0 2 0 1 0 2 0 2 4 2 0 2 0 1]
[1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0]
[2 0 0 2 1 2 0 0 2 1 2 0 0 2 1 2 0 0 2 1]
[3 2 0 0 2 0 1 3 1 4 4 4 4 3 3 2 0 1 2 1]
[4 0 3 2 3 0 3 2 4 4 3 2 4 0 2 2 4 0 3 1]
[0 3 2 0 4 2 1 4 3 1 0 3 2 0 4 2 1 4 3 1]
[1 4 4 1 0 1 4 4 1 0 1 4 4 1 0 1 4 4 1 0]
[2 4 3 0 1 2 4 3 0 1 2 4 3 0 1 2 4 3 0 1]
[3 0 4 2 2 0 4 2 3 4 4 2 3 0 3 2 3 0 4 1]
[4 1 0 0 3 0 4 4 2 4 3 3 1 3 2 2 0 2 1 1]
[0 0 3 2 4 2 3 0 0 1 0 0 3 2 4 2 3 0 0 1]
[1 3 2 4 0 1 3 2 4 0 1 3 2 4 0 1 3 2 4 0]
[2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1]
[3 1 1 0 2 0 0 4 1 4 4 3 0 3 3 2 4 2 2 1]
[4 3 1 2 3 0 1 0 4 4 3 0 2 0 2 2 2 3 3 1]
[0 4 1 0 4 2 2 3 3 1 0 4 1 0 4 2 2 3 3 1]
[1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0]
sage: A(20,5).rank()
8
Avem deci de-a face cu o matrice de rang 8, in cel mai bun caz avem deci
n(5) = 8, cel mai mic n pentru care minorul diagonal corespunzator poate avea determinant nenul. Intr-adevar,
sage: A( 8,5 ).det()
4
Sa facem cam acelasi lucru cu 7.
Nu mai tiparesc matricea cea mare...
sage: A( 7*6, 7 ).rank()
12
sage: A( 12, 7 ).rank()
12
sage: A( 12, 7 ).det()
1
Deci n(7) = 12 .
Bun, sa scriem atunci un mic program care face calculele corespunzatoare pentru noi...
cod
for p in primes( 100 ):
# p este aici un numar prim sub 100
N = p*(p-1)
rk = A( N, p ).rank()
rk_rk = A( rk, p ).rank()
print( "p=%d | A( %d, %d ) are rang %d. | A( %d, %d ) are rang %d. " % ( p, N, p, rk, rk, p, rk_rk ) ) ,
if rk_rk:
print "... OK : n(%d) = %d" % ( p, rk_rk )
else:
print "***** n(%d) < %d" % ( p, rk_rk )
Rulez acest cod pana cand imi ingheata masina...
Pana in momentul de fata am dat de...
p=2 | A( 2, 2 ) are rang 2. | A( 2, 2 ) are rang 2. ... OK : n(2) = 2
p=3 | A( 6, 3 ) are rang 4. | A( 4, 3 ) are rang 4. ... OK : n(3) = 4
p=5 | A( 20, 5 ) are rang 8. | A( 8, 5 ) are rang 8. ... OK : n(5) = 8
p=7 | A( 42, 7 ) are rang 12. | A( 12, 7 ) are rang 12. ... OK : n(7) = 12
p=11 | A( 110, 11 ) are rang 20. | A( 20, 11 ) are rang 20. ... OK : n(11) = 20
p=13 | A( 156, 13 ) are rang 24. | A( 24, 13 ) are rang 24. ... OK : n(13) = 24
p=17 | A( 272, 17 ) are rang 32. | A( 32, 17 ) are rang 32. ... OK : n(17) = 32
p=19 | A( 342, 19 ) are rang 36. | A( 36, 19 ) are rang 36. ... OK : n(19) = 36
p=23 | A( 506, 23 ) are rang 44. | A( 44, 23 ) are rang 44. ... OK : n(23) = 44
p=29 | A( 812, 29 ) are rang 56. | A( 56, 29 ) are rang 56. ... OK : n(29) = 56
p=31 | A( 930, 31 ) are rang 60. | A( 60, 31 ) are rang 60. ... OK : n(31) = 60
p=37 | A( 1332, 37 ) are rang 72. | A( 72, 37 ) are rang 72. ... OK : n(37) = 72...
/home/dan/sage-4.3.1/sage-4.3.1-Ubuntu9.10-N270-i686-Linux/local/bin/sage-sage: line 206: 2863 Killed sage-cleaner
/home/dan/sage-4.3.1/sage-4.3.1-Ubuntu9.10-N270-i686-Linux/local/bin/sage-sage: line 206: 2864 Killed sage-ipython "$@" -i
dan@ardeal ~/sage-4.3.1/sage-4.3.1-Ubuntu9.10-N270-i686-Linux $
Se pare ca avem ceva de forma n(p) = 2p-2 ...
Pana aici nu putem vorbi de o generalizare. In cel mai bun caz ne aflam in cadrul experimental, la trecerea spre punctul in care cautam un motiv pentru care avem dependenta liniara intre liniile matricii infinite cu intrarile
( i, j ) --> i^j + j^i modulo p
incepand cu linia (2p-2)+1.
Cand gasim motivul, probabil ca inca suntem nevoiti sa gasim un motiv nou pentru faptul ca primele (2p-2) linii sunt independente (sau sa gasim un p care infirma aceasta conjectura optimista).
Ma opresc aici, trebuie sa ma leg de masa de seara.
Care este motivul pentru care poate sa ne intereseze aceasta problema?
(In matematica avem tocmai nenumarate probleme structurale care plang dupa o solutie rapida...)
Motivul NU poate fi numai "generalizarea" in sine.