-2

一个让我烦恼的快速问题(从数学角度和实现方式)。如何将两个一维数组相乘?

如果我们有:

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?

我在互联网上没有找到关于如何在数学上做到这一点,我同样对如何用编程语言做到这一点感到困惑。

4

1 回答 1

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
    }
}
于 2017-04-17T19:39:23.803 回答