n | n² | r = 2(n²) |
0 | 0 | 1 |
1 | 1 | 2 |
2 | 4 | 16 |
3 | 9 | 512 |
4 | 16 | 65536 |
5 | 25 | 33554432 |
6 | 36 | 68719476736 |
Pour n = 2 on peut recenser les 16 cas possibles
nb max de x : xRy | nb max de y : xRy | |
aucun | 0 | 0 |
aRa | 1 | 1 |
aRb | 1 | 1 |
bRa | 1 | 1 |
bRb | 1 | 1 |
aRa aRb | 1 | 2 |
aRa bRa | 2 | 1 |
aRa bRb | 1 | 1 |
aRb bRa | 1 | 1 |
aRb bRb | 2 | 1 |
bRa bRb | 1 | 2 |
aRa aRb bRa | 2 | 2 |
aRa aRb bRb | 2 | 2 |
aRa bRa bRb | 2 | 2 |
aRb bRa bRb | 2 | 2 |
aRa aRb bRa bRb | 2 | 2 |
Pour n = 3 recenser les 512 cas possibles est déja trop fastidieux et un programme donne facilement les valeurs cherchées
Ce programme donne aussi les valeurs pour n = 4 (65536 cas) et n = 5 (33554432 cas) :
****** n=1 ********
p\q | 0 | 1 |
0 | 1 | |
1 | 1 | 2 |
p\q | 0 | 1 | 2 |
0 | 1 | ||
1 | 1 | 7 | |
2 | 1 | 9 | 16 |
p\q | 0 | 1 | 2 | 3 |
0 | 1 | |||
1 | 1 | 34 | ||
2 | 1 | 61 | 265 | |
3 | 1 | 64 | 343 | 512 |
p\q | 0 | 1 | 2 | 3 | 4 |
0 | 1 | ||||
1 | 1 | 209 | |||
2 | 1 | 557 | 7343 | ||
3 | 1 | 621 | 13623 | 41503 | |
4 | 1 | 625 | 14641 | 50625 | 65536 |
p\q | 0 | 1 | 2 | 3 | 4 | 5 |
0 | 1 | |||||
1 | 1 | 1546 | ||||
2 | 1 | 6396 | 304186 | |||
3 | 1 | 7646 | 865036 | 6474726 | ||
4 | 1 | 7771 | 1032961 | 11086351 | 24997921 | |
5 | 1 | 7776 | 1048576 | 11881376 | 28629151 | 33554432 |
Pour éliminer les cas avec deux 0 par lignes :
n lignes
fois C2n=n(n-1)/2 façons de choisir les deux 0 sur la ligne
fois n façons de placer éventuellement un 1 sur la colonne du 1er zéro
fois n façons de placer éventuellement un 1 sur la colonne du 2eme zéro
Soit r(n-3,1) = r(n-2,1)-n4(n-1)/2
Mais attention ! ceci n'est vrai que si n est "assez grand", c'est à dire si n-2>2
Sinon les choix pour placer un 1 dans les colonnes de 0 sont limités.
pour n=4, les cas où il y a deux 1 sur la même ligne sont comptés deux fois,
soit (C24)2 = 36 cas
et r(n-3,1) = r(n-2,1)-n4(n-1)/2+(n(n-1)/2)²
De façon générale : r(n-i-1,1) = r(n-i,1)-nCinni = r(n-i,1)-ni+1Cin pourvu que n-i>i
Pour i≥n/2, c'est un peu plus dur à éliminer les cas comptés plusieurs fois ou à rejeter.
Examinons par exemple le cas n=8.
r(8,1) = 97,
elimination des lignes toutes à 1 : r(7,1) = r(8,1)-n
elimination des lignes avec un seul 0 : r(6,1) = r(7,1)-n³ =
elimination des lignes avec deux 0 : r(5,1) = r(6,1)-n3C2n
elimination des lignes avec trois 0 : r(4,1) = r(5,1)-n4C3n
elimination des lignes avec quatre 0 : r(3,1) = r(4,1)-n5C4n+(C4n)2
pour prendre en compte les cas en double comme pour n=4 ci-dessus.
elimination des lignes avec cinq 0 : on élimine n6C4n cas,
mais sont éliminés en trop les cas où dans les cinq colonnes avec un 0, il y a des lignes de trois, quatre ou cinq 1
En résumé :
r(p,q) = r(q,p)
r(p,0) = r(0,0) = 1 r(p,q) = r(p,n) si q≥n r(n,n) = r = 2(n²) r(1,1) = ∑i=0n CinAin r(n,p)=(∑i=0p Cin)n, en particulier r(n,1) = (n+1)n pour i<n/2 r(n-i-1,1) = r(n-i,1)-ni+1Cin |