У меня проблемы с тем, чтобы заставить работать умножение матриц «разделяй и властвуй». Насколько я понимаю, вы разбиваете матрицы размера nxn на квадранты (каждый квадрант равен n / 2), а затем делаете:
C11 = A11⋅ B11 + A12 ⋅ B21
C12 = A11⋅ B12 + A12 ⋅ B22
C21 = A21 ⋅ B11 + A22 ⋅ B21
C22 = A21 ⋅ B12 + A22 ⋅ B22
Мой результат для «разделяй и властвуй» действительно велик, и у меня возникли проблемы с выяснением проблемы, так как я не очень хорош с рекурсией.
пример вывода:
Исходная матрица A:
4 0 4 3
5 4 0 4
4 0 4 0
4 1 1 1
A x A
Классический:
44 3 35 15
56 20 24 35
32 0 32 12
29 5 21 17
Разделяй и властвуй:
992 24 632 408
1600 272 720 1232
512 0 512 384
460 17 405 497
Может ли кто-нибудь сказать мне, что я делаю неправильно для «разделяй и властвуй»? Все мои матрицы - int [] []
, а классический метод - это традиционное умножение матриц на 3 для цикла