package com.xiuye.util.algorithm.basics;
import com.xiuye.util.X;
import java.util.Random;
public class Matrix {
/**
* A[i][s] * B[s][j] = c[i][j]
* @param a
* @param b
* @return
*/
public static int[][] dot(int a[][],int b[][]){
/**
* i,s * s,j
*/
int [][]c = new int[a.length][b[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b[0].length;j++){
for(int k=0;k<a[i].length;k++){
c[i][j] += a[i][k] * b[k][j];
}
}
}
return c;
}
public static void main(String[] args) {
int [][]a = new int[10][8];
int [][]b = new int[8][20];
Random random = new Random();
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j] = random.nextInt(10);
}
}
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
b[i][j] = random.nextInt(10);
}
}
X.lg("a=");
X.lg("[");
for(int i=0;i<a.length;i++){
X.print("\t\t");
for(int j=0;j<a[i].length;j++){
X.print(a[i][j],"");
}
X.lg();
}
X.lg("]");
X.lg("b=");
X.lg("[");
for(int i=0;i<b.length;i++){
X.print("\t\t");
for(int j=0;j<b[i].length;j++){
X.print(b[i][j],"");
}
X.lg();
}
X.lg("]");
int [][]c = dot(a,b);
X.lg("c=");
X.lg("[");
for(int i=0;i<c.length;i++){
X.print("\t\t");
for(int j=0;j<c[i].length;j++){
X.print(c[i][j],"");
}
X.lg();
}
X.lg("]");
}
}
a=
[
1 6 4 6 4 0 3 9
6 3 6 4 1 9 9 1
6 1 5 8 9 2 5 9
0 7 5 1 0 4 2 4
5 5 2 9 6 9 4 4
7 2 1 6 6 5 2 9
9 3 7 2 2 7 5 1
7 9 9 5 2 7 2 9
4 2 2 1 7 8 1 6
4 4 4 3 2 0 0 4
]
b=
[
8 2 4 4 0 3 3 6 1 5 7 8 4 7 0 8 7 9 1 3
2 1 3 5 1 1 7 3 0 8 9 6 1 4 5 8 4 1 6 2
2 2 8 7 0 6 4 6 0 3 9 0 6 0 0 3 6 6 6 8
1 5 5 1 7 3 0 5 8 0 2 3 1 9 4 2 4 7 0 7
0 3 8 6 4 3 4 5 0 7 5 9 8 0 5 7 2 2 4 2
1 3 2 2 0 7 7 8 7 8 3 3 1 3 4 4 3 2 8 9
3 3 0 5 0 3 0 9 4 1 4 3 5 2 5 0 6 8 0 0
9 9 8 7 7 0 9 3 8 6 7 7 0 1 9 2 6 5 4 8
]
c=
[
124 148 188 170 127 72 158 152 133 150 204 170 87 100 170 126 159 158 113 169
115 113 135 161 42 162 139 262 145 166 206 148 129 136 126 143 195 218 140 191
166 192 255 218 156 129 176 242 176 191 246 243 162 143 196 176 216 248 130 224
71 76 106 117 42 74 133 118 76 129 158 91 52 57 101 97 110 88 120 129
120 157 194 170 120 152 181 252 188 213 217 218 123 175 183 190 190 207 159 229
160 168 202 170 131 106 179 199 170 192 204 224 105 139 175 167 180 196 125 204
125 96 149 160 32 148 142 229 102 171 215 157 131 125 95 165 186 203 137 178
191 180 254 240 115 160 258 259 176 260 323 233 129 164 194 225 250 240 215 285
106 121 163 146 79 109 172 173 120 192 171 179 100 77 140 149 132 125 144 173
87 77 123 107 61 55 100 97 60 102 144 111 63 75 78 104 108 109 76 109
]