乘以两个一维数组

时间:2017-04-17 19:24:51

标签: java arrays multiplication dimensional

一个让我烦恼的快速问题(无论是从数学角度还是从实现角度来看)。你如何将两个一维数组相乘?

如果我们有:

int[] a = {1,2,3};
int[] b = {4,5,6};

我们想把结果放到变量c中,你如何进行数学和实现? c也应该是一维的还是二维的?

提前谢谢!

修改 每个人都在问我想要什么。我正试图解决一个数字问题,字面上告诉我:

a = {1,2,3};
b = {4,5,6};

c = a * b; //what is c?

我在互联网上没有发现如何以数学方式做到这一点,我同样对如何用编程语言进行操作感到困惑。

1 个答案:

答案 0 :(得分:1)

我不确定你是否试图找到所有的总和,或试图用乘法创建一个矩阵。

总结请参阅duffymo的答案。

对于新阵列,最终产品将是:

int[][] c= {{4, 8, 12}, {5, 10, 15}, {6, 12, 18}};

想法:你可以循环遍历它们并将每个索引相乘。然后将产品存储在int [] [] c中。您也可以将它们放在列表中,具体取决于您的实现:c = {4,8,12,5,10,15,6,12,18}。

int[][] c = new int[a.length][b.length];
// int[] c = new int[a.length * b.length];
for(int i = 0; i < a.length; i++){
    for(int j = 0; j < b.length; b++){
        c[i][j] = a[i] * b[j];
        // c[i * a.length + j] = a[i] * b[j]; if you want to store it in a 1D array
        // Try a few examples to see why this will work for 1D array
    }
}