La transposition d'une matrice à partir d'un tableau 2D
Je suis auto enseigner moi-même certains de java et je suis bloqué sur la création d'un tableau 2D qui l'initialise avec les valeurs aléatoires et crée ensuite la transposée de la matrice.
Un exemple de sortie est:
$ java Test1 22 333 44 555 6
Enter the number of rows (1-10): 0
ERROR: number not in specified range (1-10) !
and so on until you enter the correct number of rows and columns.
Matrice d'origine
1 22 333 44 555 6
Matrice transposée
1 333 555` 22 44 6`
^ Doit être le résultat final. Un peu d'aide avec le code serait apprécié!
Je voudrais le code pour générer des messages d'erreur si le nombre de lignes ou de colonnes est hors de la plage spécifiée. Et si pour lire les éléments de la matrice à partir de la ligne de commande et de ne pas générer de façon aléatoire.
import java.util.Scanner;
public class Test1 {
/** Main method */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of rows (1-10): ");
int rows = input.nextInt();
System.out.print("Enter the number of columns (1-10): ");
int cols = input.nextInt();
//Create originalMatrix as rectangular two dimensional array
int[][] originalMatrix = new int[rows][cols];
//Assign random values to originalMatrix
for (int row = 0; row < originalMatrix.length; row++)
for (int col = 0; col < originalMatrix[row].length; col++) {
originalMatrix[row][col] = (int) (Math.random() * 1000);
}
//Print original matrix
System.out.println("\nOriginal matrix:");
printMatrix(originalMatrix);
//Transpose matrix
int[][] resultMatrix = transposeMatrix(originalMatrix);
//Print transposed matrix
System.out.println("\nTransposed matrix:");
printMatrix(resultMatrix);
}
/** The method for printing the contents of a matrix */
public static void printMatrix(int[][] matrix) {
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
System.out.print(matrix[row][col] + " ");
}
System.out.println();
}
}
/** The method for transposing a matrix */
public static int[][] transposeMatrix(int[][] matrix) {
//Code goes here...
}
}
Vous obtiendrez de meilleurs aider si vous affichez le code que vous avez essayé. Nous ne pouvons pas dire si vous rencontrez des problèmes de saisie des cordes, la validation d'une entrée, ou la transposition des éléments d'un tableau.
Je ne suis pas en voir ici la matrice. merci de rendre votre post plus lisible. vous tentez d'afficher une matrice 2D de façon linéaire
désolé, j'ai ajouté le code, je travaille dans mon premier post. Je sais qu'il a besoin de quelques modifications, mais je ne suis pas sûr de la façon de les mettre en œuvre
Je ne sais pas pourquoi c'est en montrant de façon linéaire... il ne devrait pas
Quelle partie vous avez des problèmes avec?
Je ne suis pas en voir ici la matrice. merci de rendre votre post plus lisible. vous tentez d'afficher une matrice 2D de façon linéaire
désolé, j'ai ajouté le code, je travaille dans mon premier post. Je sais qu'il a besoin de quelques modifications, mais je ne suis pas sûr de la façon de les mettre en œuvre
Je ne sais pas pourquoi c'est en montrant de façon linéaire... il ne devrait pas
Quelle partie vous avez des problèmes avec?
OriginalL'auteur Austin Fogg | 2014-10-04
Vous devez vous connecter pour publier un commentaire.
C'est une méthode simple qui retourne un int[][] de la transposée de la matrice...
Que d'imprimer une matrice 2D, vous pouvez utiliser une méthode comme ceci:
OriginalL'auteur thebesttony
La réponse ci-dessus n'est pas efficace en termes de mémoire. C'est à l'aide d'un autre tableau - transposedMatrix en dehors de tableau fourni en argument. Cela conduira à consommer le double de la mémoire. Nous pouvons faire cela en place comme suit:
OriginalL'auteur Ashish K Gupta
Vous pouvez utiliser la sous classe il a la plupart des méthodes que vous souhaitez.
De sortie:
OriginalL'auteur Vineet Abbi
Pour une matrice carrée, au lieu d'itérer sur l'ensemble de la matrice, vous venez de parcourir la diagonale de la moitié du tableau 2D et de permuter les valeurs avec les indices correspondants.
OriginalL'auteur Piyush Shandilya