Matrices à grandes tailles
sara
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Dans un devoir à rendre, j'ai cette question :
Implémentez un programme Java qui calcule le produit de deux matrices, en mono-thread
dans la fonction main. Testez-le sur des matrices de grande taille et utilisez la commande
shell time pour mesurer le temps d’exécution.
Le problème ici est que je me demande s'il s'agit de matrices à une ou deux dimensions? Car pour des matrices à deux dimensions de petite taille, ca fonctionne bien. Mais je me demande comment faire pour tester sur des matrices à grandes tailles, les matrices en java n'ayant que 2 lignes?
Merci
Dans un devoir à rendre, j'ai cette question :
Implémentez un programme Java qui calcule le produit de deux matrices, en mono-thread
dans la fonction main. Testez-le sur des matrices de grande taille et utilisez la commande
shell time pour mesurer le temps d’exécution.
Le problème ici est que je me demande s'il s'agit de matrices à une ou deux dimensions? Car pour des matrices à deux dimensions de petite taille, ca fonctionne bien. Mais je me demande comment faire pour tester sur des matrices à grandes tailles, les matrices en java n'ayant que 2 lignes?
Merci
1 réponse
-
Bonjour,
"je me demande s'il s'agit de matrices à une ou deux dimensions?"
Si on parle de matrice, c'est qu'il s'agit d'un tableau à deux dimensions,int[][]
"les matrices en java n'ayant que 2 lignes?"
Non, en Java une matrice peut avoir jusqu'à 2 milliards de lignes et 2 milliards de colonnes, la limitation venant de la taille des tableauxnew int[n]
où n est un int dont la valeur maximale estInteger.MAX_VALUE
= 2^31-1
"je me demande comment faire pour tester sur des matrices à grandes tailles"
Je pense qu'il faudrait générer tes matrice avec des valeurs aléatoires pour remplir toutes les cases des matrices avant de faire le calcul.
Attention : avec la commandetime
tu vas uniquement pouvoir calculer la durée totale du programme, comprenant l'initialisation des deux matrices et le calcul du produit, il serait plus précis d'utiliserSystem.currentTimeMillis()
qui te permettras d'obtenir les temps intermédiaire pour ne calculer que le temps d'exécution du produit, sans le temps d'initialisation.