php - 如何将 N 个向量的每个元素相乘 N^N 次

标签 php algorithm matrix vector

问题是我必须将 N 个向量 的每个元素彼此相乘。 例如,如果有两个向量名称X,Y。每个都有三个要素。 例如 X={X1,x2,x3}Y={y1,y2,y3} 。所以乘法如下

M1={X1*Y1},
M2={X1*Y2},
M3={X1*Y3},
M4={X2*Y1},
M5={X2*Y2},
M6={X2*Y3},
M7={X3*Y1},
M8={X3*Y2},
M9={X4*Y3}

我可以使用两个“for”循环轻松完成此操作。 但问题是向量的数量是可变的。它可以是X,Y,ZX,YW,X,Y,Z。那么我怎样才能将它们相乘呢?此操作有数学名称吗?

我的想法之一是将向量视为一个矩阵。

最佳答案

Here is the solution for your problem. Syntax may be different or depends on programming language you are using. It will initially store the first element and then perform multiplication of upcoming arrays. So each and every element of arrays are being multiplied one by one.

<?php
function multiplyVector($a=array(),$b)
{
    $count_a = count($a);
    $count_b = count($b);

    if($count_a)
    {
        for($i=0;$i<$count_a;$i++)
        {
            for($j=0;$j<$count_b;$j++)
            {
                $result[] = $a[$i] * $b[$j];
            }
        }
    }
    else
    {
        $result = $b;
    }

    return $result;
}

$X = [ 1, 2, 3 ];

$Y = [ 7, 8, 9, 10 ];

$Z = [ 10, 20, 50];
// add multiple array to $main
$main = [ $X, $Y, $Z ];

$result = array();

foreach($main as $m)
{
    $result = multiplyVector($result,$m);
}


echo "<pre>";print_r($result);die;

结果就在这里。

Array
(
    [0] => 70
    [1] => 140
    [2] => 350
    [3] => 80
    [4] => 160
    [5] => 400
    [6] => 90
    [7] => 180
    [8] => 450
    [9] => 100
    [10] => 200
    [11] => 500
    [12] => 140
    [13] => 280
    [14] => 700
    [15] => 160
    [16] => 320
    [17] => 800
    [18] => 180
    [19] => 360
    [20] => 900
    [21] => 200
    [22] => 400
    [23] => 1000
    [24] => 210
    [25] => 420
    [26] => 1050
    [27] => 240
    [28] => 480
    [29] => 1200
    [30] => 270
    [31] => 540
    [32] => 1350
    [33] => 300
    [34] => 600
    [35] => 1500
)

关于php - 如何将 N 个向量的每个元素相乘 N^N 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291719/

相关文章:

php - 学说 2 @joincolumns

解决资源分配问题的算法

javascript - 许多节点的图形算法

c# - 在 C# 中从文件读取二维矩阵到二维 int 数组

矩阵变换的Opengl顺序

php - RGBA格式HEX转RGB格式HEX? PHP

javascript - 如何将 MYSQL 列存储为数组

c++ - 使用 Cuda 的排序算法。内仁还是外仁?

python - 在张量中分配行会抛出 "None values not supported"

javascript - 从数据库获取图像并将其链接到 php 中的功能或新闻等