Je pensais que ca serait suffisemment, clair dans le premier post, mais j'ai peut-etre survolé certains points...
Une matrice est un objet mathématique que l'on peut représenter par un tableau de données à 2 entrés, comme:
Dans ce tableau, tu as un certain nombre de données rentrées (tu as LxC données entrés, avec L le nombre de lignes et C le nombre de colonnes). Dans l'exemple de l'image, tu as donc 6x7 = 42 données, ou encore, 42 cases (une donnée est stockée dans une case).
Ensuite, ces données pourront être compilées et brassées entre elles !
Pour obtenir les caractéristiques d'un objet quelconque à partir de ce tableau (= à partir de cette matrice), on va croiser les lignes entre elles. On peut, par exemple, prendre les caractéristiques de la première ligne du tableau. Mais on peut aussi prendre les caractéristiques des 3 premières colonnes de la ligne 2 et utiliser les caractéristiques des 3 dernières colonnes de la ligne 4 !
On a en fait L possibilités (nombre de lignes) pour chaque paramètre de l'objet (= chaque colonne). Mathématiquement, à partir d'un tableau de L lignes et C colonnes, on va pouvoir obtenir:
L ^ C
Combinaisons différentes! Cela offre des croisements infinis (enfin, presque, disons plutôt tres nombreux).
Pour un tableau de 1 ligne par 1 colonne, on aurait 1x1 = 1 donnée, et 1^1=1 combinaison
Pour un tableau de 2 lignes par 1 colonne, on aura 1x2 = 2 données et 2^1=2 combinaisons
Pour un tableau de 1 ligne par 2 colonnes, on aura 2x1 = 2 données et 1^2=1 combinaison
Pour un tableau de 2 lignes par 2 colonnes, on aura 2x2=4 données et 2^2=4 combinaisons
Pour un tableau quelconque de L lignes et C colonnes, on a vu que LxC données étaient stockées, et L^C combinaisons existaient.
Donc, si on ajoute une colonne au tableau, on aurait Lx(C+1) = LxC+L données, et L^(C+1) = (L^C)xL combinaisons. Que remarque-t-on alors? On voit immédiatement qu'en ajoutant une colonne, on augmente le nombre de données de L (nb de lignes), mais on
multiplie le nombre de combinaisons par L ! Ce qui permet d'avoir un nombre de combinaisons immenses, sans avoir énormément de données en mémoire!
A l'inverse, si on ajoute une ligne au tableau de L lignes et C colonnes, alors on a:
*) (L+1)xC = LxC+C données, donc on augmente le nombre de données de C
*) (L+1)^C combinaisons, expression qui ne se développe pas aisément... mais on peut dire que l'augmentation du nombre de combinaisons est exponentielle.
Le tableau chimique possède actuellement plus de 100 éléments, avec environ 6 ou 7 paramètres indépendants. Donc, on a 100x7 = 700 données en mémoire (à 4Octets la donnée, faites le compte, on a moins de 2.8Ko de mémoire prise), et on a 100^7 = 100000000000000 combinaisons différentes !!! Soit cent mille milliards de combinaisons ! S'il avait fallu coder les paramètres et les données de chaque combinaison, on aurait besoin de stocker sept cent milles milliards de données (7 données par combinaisons), et comme on a 4octets par donnée, on aura pas moins de 2 millions huit cent milles milliards d'octets, ca fait "juste" 2.800 To, ou 2,8Po!
Pour information, un Po (pétaoctet) fait 1.000.000 de Go, et un To (téraoctet) fait 1.000 Go.
Autre information: les disques durs d'un pétaoctet n'existent probablement pas pour les particuliers! Un disque de 1To coute pas moins de 100€ (http://www.ldlc.com/fiche/PB00067274.html excellent magasin, et en plus, il sont sur Lyon!). Vous aimeriez d'un jeu qui vous demande 280.000€ d'investissement en disques durs?! D'où l'intéret de ces tableaux aux combinaisons illimitées !
Voici une autre comparaison graphique:
Si on utilise un système matriciel, on a vu que l'augmentation du nombre de données est affine, et que l'augmentation du nombre de combinaisons est exponentielle. Donc, si on fait le rapport
/ , on obtient une courbe de ce genre ci, avec en abscisse la mémoire prise et en ordonnée le nombre de combinaisons:
Avec un système "classique", où les combinaisons sont entrées manuellement, on aurait la courbe suivante:
Le gain est donc nul pour des valeurs de L et de C petites (et même, c'est une perte, car le codage matriciel est plus complexe que le codage classique), mais sur de grands nombres, l'écart est impressionnant! (voir l'exemple du tableau chimique donné précédemment).
Tu as compris?