Java - Thực hiện phép nhân hai ma trận và tìm ma trận chuyển vị của ma trận tích vừa tính được.

Viết công tác tiến hành những việc làm sau:

  • Tạo 2 quái trận hai phía A và B sở hữu độ cao thấp theo thứ tự là m1 * n1 và mét vuông * n2 (với m1, n1, mét vuông, n2 > 0), độ quý hiếm của những thành phần được nhập kể từ keyboard. Xuất 2 quái trận vừa vặn nhập đi ra screen.
  • Tính và in đi ra screen quái trận C = A * B. Lưu ý: Điều khiếu nại nhằm quái trận A nhân được với quái trận B là số cột của quái trận A ngay số dòng sản phẩm của quái trận B.
  • Nếu tồn bên trên quái trận tích C, hãy mò mẫm quái trận D là quái trận trả vị của quái trận C. hiểu rằng: Ma trận D = CT là quái trận trả vị của quái trận C nếu như những sản phẩm của quái trận C phát triển thành những cột của quái trận D và ngược lại. Tức Dij = Cji. Ví dụ:

matranchuyenvi PNG

Bạn đang xem: Java - Thực hiện phép nhân hai ma trận và tìm ma trận chuyển vị của ma trận tích vừa tính được.

test php

Bài giải

-------------------- ######## --------------------

Hướng dẫn về quy tắc nhân hai ma trận: Cho nhị quái trận Am1 * n1, Bm2 * n2 .Khi tê liệt quái trận cn1 * m2 = A * B gọi là tích của nhị quái trận A, B. Trong đó:

test php

banquyen png

Bài viết lách này được đăng bên trên framesi.com.vn, ko được copy bên dưới từng mẫu mã.

nhanhaimatran PNG

Xem thêm: Những quốc gia nhỏ nhất thế giới

Như vậy cij = thành phần ở sản phẩm loại i của quái trận A nhân ứng với thành phần ở cột loại j của quái trận B rồi nằm trong lại.

Ví dụ:

Bài viết lách này được đăng bên trên [free tuts .net]

Bài giải

public static void main(String[] args) {
	int m1, n1;	// số dòng sản phẩm và số cột của quái trận A
	int mét vuông, n2;	// số dòng sản phẩm và số cột của quái trận B
	char choose;
	Scanner scanner = new Scanner(System.in);
		
	System.out.println("Nhập vô số dòng sản phẩm của quái trận A: ");
	m1 = scanner.nextInt();
	System.out.println("Nhập vô số cột của quái trận A: ");
	n1 = scanner.nextInt();
		
	System.out.println("Nhập vô số dòng sản phẩm của quái trận B: ");
	m2 = scanner.nextInt();
	System.out.println("Nhập vô số cột của quái trận B: ");
	n2 = scanner.nextInt();
		
	int[][] A = new int[m1][n1];
	int[][] B = new int[m2][n2];
		
	// quái trận tích C = A * B
	// sẽ sở hữu được số dòng sản phẩm là số dòng sản phẩm của quái trận A
	// và số cột là số cột của quái trận B
	int C[][] = new int[m1][n2];
		
	while (m1 > 0 && n1 > 0 && mét vuông > 0 && n2 > 0) {
		if (n1 != m2) {
			System.out.println("Để nhân hai ma trận thì "
					+ "số cột của quái trận A nên ngay số dòng sản phẩm của quái trận B");
			System.out.println("Nhập lại số cột của quái trận A: ");
			n1 = scanner.nextInt();
			System.out.println("Nhập vô số dòng sản phẩm của quái trận B: ");
			m2 = scanner.nextInt();
		} else {
			// nhập độ quý hiếm của những thành phần cho tới 2 quái trận A
			System.out.println("Nhập vô những thành phần của quái trận A: ");
			for (int i = 0; i < m1; i++) {
				for (int j = 0; j < n1; j++) {
					System.out.print("A[" + i + "]["+ j + "] = ");
					A[i][j] = scanner.nextInt();
				}
			}
				
			// nhập độ quý hiếm của những thành phần cho tới 2 quái trận B
			System.out.println("Nhập vô những thành phần của quái trận A: ");
			for (int i = 0; i < m2; i++) {
				for (int j = 0; j < n2; j++) {
					System.out.print("B[" + i + "]["+ j + "] = ");
					B[i][j] = scanner.nextInt();
				}
			}
				
			// hiển thị 2 quái trận vừa vặn nhập
			System.out.println("Ma trận A: ");
			for (int i = 0; i < m1; i++) {
				for (int j = 0; j < n1; j++) {
					System.out.print(A[i][j] + "\t");
				}
				System.out.println("\n");
			}
			
			System.out.println("Ma trận B: ");
			for (int i = 0; i < m2; i++) {
				for (int j = 0; j < n2; j++) {
					System.out.print(B[i][j] + "\t");
				}
				System.out.println("\n");
			}
			
			// tính và in đi ra quái trận C = A * B
			for (int i = 0; i < m1; i++) {
				for (int j = 0; j < n2; j++) {
					C[i][j] = 0;
					for (int k = 0; k < n1; k++) {
						C[i][j] = C[i][j] + A[i][k] * B[k][j];
					}
				}
			}
			
			// hiển thị quái trận tích C
			System.out.println("Ma trận tích C: ");
			for (int i = 0; i < m1; i++) {
				for (int j = 0; j < n2; j++) {
					System.out.print(C[i][j] + "\t");
				}
				System.out.println("\n");
			}
				

			// mò mẫm quái trận D là quái trận trả vị của quái trận C
			// quái trận D là quái trận trả vị của quái trận C
			// thì những dòng sản phẩm của quái trận C tiếp tục trở thành
			// những cột của quái trận D và ngược lại
			// ví dụ: quái trận C sở hữu số dòng sản phẩm m1 = 3 và số cột n2 = 4 thì
			// quái trận D sẽ sở hữu được số dòng sản phẩm n2 = 4 và số cột m1 = 3
			int D[][] = new int[n2][m1];
			for (int i = 0; i < m1; i++) {
				for (int j = 0; j < n2; j++) {
					D[j][i] = C[i][j];
				}
			}
				
			// hiển thị quái trận D
			System.out.println("Ma trận trả vị của quái trận C là: ");
			for (int i = 0; i < n2; i++) {
				for (int j = 0; j < m1; j++) {
					System.out.print(D[i][j] + "\t");
				}
				System.out.println("\n");
			}
				
			System.out.println("Bạn cũng muốn nối tiếp không? Bấm nó nhằm nối tiếp, n nhằm thoát!");
			choose = scanner.next().charAt(0);
			if (choose == 'y') {
				continue;
			} else {
				System.out.println("Goodbye!");
				break;
			}
		}

	}
}
	

Kết trái ngược sau thời điểm biên dịch chương trình:

Nếu nhập vô số cột của quái trận A ko ngay số dòng sản phẩm của quái trận B thì công tác tiếp tục đòi hỏi chúng ta nhập lại:

ketqua baitap4mang2chieu 1 PNG

Xem thêm: NaOH + H2SO4 → Na2SO4+ H2O.

Nếu nhập vô số cột của quái trận A ngay số dòng sản phẩm của quái trận B:

ketqua baitap4mang2chieu 2 PNG

Câu chất vấn thông thường bắt gặp liên quan:

  • Java - Tìm độ quý hiếm lớn số 1 vô một quái trận 2 chiều với những thành phần được nhập kể từ keyboard.
  • Java - Viết công tác tính tổng những thành phần phía trên đàng chéo cánh chủ yếu của một quái trận vuông.
  • Java - Tìm thành phần có mức giá trị lớn số 1 và nhỏ nhất bên trên đàng chéo cánh chủ yếu của một quái trận vuông.
  • Java - Thực hiện nay quy tắc nhân hai ma trận và mò mẫm quái trận trả vị của quái trận tích vừa vặn tính được.
  • Java - Thực hiện nay nhập vào trong 1 quái trận vuông và đánh giá quái trận tê liệt liệu có phải là quái trận tam giác bên trên không?
  • Java - Viết công tác tính độ quý hiếm khoảng của những thành phần nhỏ nhất bên trên từng cột của một quái trận.
  • Java - Viết công tác mò mẫm và in đi ra screen thành phần lớn số 1 và địa điểm của thành phần tê liệt vô quái trận số nguyên
  • Java - Viết công tác mò mẫm và in đi ra thành phần chẵn dương nhỏ nhất vô quái trận.
  • Java - Viết công tác xóa dòng sản phẩm sở hữu tổng lớn số 1 của một quái trận số thực.

Cùng chuyên nghiệp mục:

BÀI VIẾT NỔI BẬT


Top 50+ Khung Powerpoint Đẹp Nhất

50+ Mẫu Khung Powerpoint Đẹp Nhất. Mặc dù Powerpoint không có tính năng tạo khung như Word, nhưng bạn vẫn có thể làm cho slide của mình nổi bật hơn bằng cách thêm khung hoặc hình nền khung.