công cộng
lớp học
Ma trận {
riêng tư
cuối cùng
Ma trận[] _matrixArray;
riêng tư
cuối cùng
số nguyên
N;
riêng tư
số nguyên
yếu tố;
công cộng
Ma trận(
số nguyên
N) {
cái này
.n = n;
nếu như
(số !=
1
) {
cái này
._matrixArray =
mới
Ma trận[
4
];
vì
(
số nguyên
tôi =
0
; tôi <
4
; tôi++) {
cái này
._matrixArray[i] =
mới
Ma trận(n /
2
);
}
}
khác
{
cái này
._matrixArray =
vô giá trị
;
}
}
riêng tư
Ma trận(
số nguyên
N,
Boolean
cầnInit) {
cái này
.n = n;
nếu như
(số !=
1
) {
cái này
._matrixArray =
mới
Ma trận[
4
];
}
khác
{
cái này
._matrixArray =
vô giá trị
;
}
}
công cộng
vô hiệu
bộ(
số nguyên
Tôi,
số nguyên
j,
số nguyên
Một) {
nếu như
(số lượng ==
1
) {
phần tử = a;
}
khác
{
số nguyên
kích thước = n /
2
;
cái này
._matrixArray[(i / kích thước) *
2
+ (j / kích thước)].set(i % kích thước, j % kích thước, a);
}
}
công cộng
Ma trận đa (Ma trận m) {
Kết quả ma trận =
vô giá trị
;
nếu như
(số lượng ==
1
) {
kết quả =
mới
Ma trận(
1
);
kết quả.set(
0
,
0
, (phần tử * phần tử m));
}
khác
{
kết quả =
mới
Ma trận(n,
SAI
);
kết quả._ma trậnArray[
0
] = P5(m).thêm(P4(m)).trừ(P2(m)).thêm(P6(m));
kết quả._ma trậnArray[
1
] = P1(m).thêm(P2(m));
kết quả._ma trậnArray[
2
] = P3(m).thêm(P4(m));
kết quả._ma trậnArray[
3
] = P5(m).thêm(P1(m)).trừ(P3(m)).trừ(P7(m));
}
trở lại
kết quả;
}
công cộng
Ma trận thêm(Ma trận m) {
Kết quả ma trận =
vô giá trị
;
nếu như
(số lượng ==
1
) {
kết quả =
mới
Ma trận(
1
);
kết quả.set(
0
,
0
, (phần tử + phần tử m));
}
khác
{
kết quả =
mới
Ma trận(n,
SAI
);
kết quả._ma trậnArray[
0
] =
cái này
._matrixArray[
0
].thêm(m._matrixArray[
0
]);
kết quả._ma trậnArray[
1
] =
cái này
._matrixArray[
1
].thêm(m._matrixArray[
1
]);
kết quả._ma trậnArray[
2
] =
cái này
._matrixArray[
2
].thêm(m._matrixArray[
2
]);
kết quả._ma trậnArray[
3
] =
cái này
._matrixArray[
3
].thêm(m._matrixArray[
3
]);;
}
trở lại
kết quả;
}
công cộng
Ma trận trừ(Ma trận m) {
Kết quả ma trận =
vô giá trị
;
nếu như
(số lượng ==
1
) {
kết quả =
mới
Ma trận(
1
);
kết quả.set(
0
,
0
, (phần tử - m.element));
}
khác
{
kết quả =
mới
Ma trận(n,
SAI
);
kết quả._ma trậnArray[
0
] =
cái này
._matrixArray[
0
].trừ(m._matrixArray[
0
]);
kết quả._ma trậnArray[
1
] =
cái này
._matrixArray[
1
].trừ(m._matrixArray[
1
]);
kết quả._ma trậnArray[
2
] =
cái này
._matrixArray[
2
].trừ(m._matrixArray[
2
]);
kết quả._ma trậnArray[
3
] =
cái này
._matrixArray[
3
].trừ(m._matrixArray[
3
]);;
}
trở lại
kết quả;
}
được bảo vệ
Ma trận P1(Ma trận m) {
trở lại
_matrixArray[
0
].multi(m._matrixArray[
1
]).trừ(_matrixArray[
0
].multi(m._matrixArray[
3
]));
}
được bảo vệ
Ma trận P2(Ma trận m) {
trở lại
_matrixArray[
0
].multi(m._matrixArray[
3
]).thêm(_mảng ma trận[
1
].multi(m._matrixArray[
3
]));
}
được bảo vệ
Ma trận P3(Ma trận m) {
trở lại
_matrixArray[
2
].multi(m._matrixArray[
0
]).thêm(_mảng ma trận[
3
].multi(m._matrixArray[
0
]));
}
được bảo vệ
Ma trận P4(Ma trận m) {
trở lại
_matrixArray[
3
].multi(m._matrixArray[
2
]).trừ(_matrixArray[
3
].multi(m._matrixArray[
0
]));
}
được bảo vệ
Ma trận P5(Ma trận m) {
trở lại
(_matrixArray[
0
].thêm(_mảng ma trận[
3
])).multi(m._matrixArray[
0
].thêm(m._matrixArray[
3
]));
}
được bảo vệ
Ma trận P6(Ma trận m) {
trở lại
(_matrixArray[
1
].trừ(_ma trậnMảng[
3
])).multi(m._matrixArray[
2
].thêm(m._matrixArray[
3
]));
}
được bảo vệ
Ma trận P7(Ma trận m) {
trở lại
(_matrixArray[
0
].trừ(_ma trậnMảng[
2
])).multi(m._matrixArray[
0
].thêm(m._matrixArray[
1
]));
}
công cộng
số nguyên
lấy(
số nguyên
Tôi,
số nguyên
j) {
nếu như
(số lượng ==
1
) {
trở lại
yếu tố;
}
khác
{
số nguyên
kích thước = n /
2
;
trở lại
cái này
._matrixArray[(i / kích thước) *
2
+ (j / kích thước)].get(i % kích thước, j % kích thước);
}
}
công cộng
vô hiệu
trưng bày() {
vì
(
số nguyên
tôi =
0
; tôi < n; tôi++) {
vì
(
số nguyên
j =
0
; j < n; j++) {
System.out.print(lấy(i, j));
Hệ thống.out.print(
" "
);
}
System.out.println();
}
}
công cộng
tĩnh
vô hiệu
main(String[] args) {
Ma trận m =
mới
Ma trận(
2
);
Ma trận n =
mới
Ma trận(
2
);
m.set(
0
,
0
,
1
);
m.set(
0
,
1
,
3
);
m.set(
1
,
0
,
5
);
m.set(
1
,
1
,
7
);
n.set(
0
,
0
,
8
);
n.set(
0
,
1
,
4
);
n.set(
1
,
0
,
6
);
n.set(
1
,
1
,
2
);
Ma trận res = m.multi(n);
res. display();
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!