Matrix Multiplikation in PHP inklusive Code

Inhaltsverzeichnis

Zwei Matrizen miteinander Multiplizieren in PHP. Unterschiedliche Dimensionen, Laufzeitbetrachtung und Ausgabe des zweidimensionalen Arrays.

Hier der Programmcode um zwei Matrizen beliebiger unterschiedlicher Größe zu multiplizieren. Die Skalarmultiplikation ist lediglich ein einziger Befehl, welcher durch drei for Schleifen geschachtelt ist. Dimension der Ergebnis Matrix wird dynamisch berechnet. Laufzeit: Theta n hoch 3

https://de.wikipedia.org/wiki/Skalarmultiplikation

https://de.wikipedia.org/wiki/Landau-Symbole

https://cathyatseneca.gitbooks.io/data-structures-and-algorithms/content/analysis/notations.html

Code

<?php

// Predefined Two Dimensional Arrays / Matrix

$A = array(
 array(2,1,3,4),
 array(1,2,1,1),
 array(2,1,1,1)
);

$B = array(
 array(2,3),
 array(1,4),
 array(1,5),
 array(1,6)
);

// Count of Rows / Columns beginning with Index 0

function Anzahl_Zeilen($MATRIX) {
 return sizeof($MATRIX);
}

function Anzahl_Spalten($MATRIX) {
 return sizeof($MATRIX[0]);
}

// Print the Matrix Dimensions (beginning with Index 0)

echo "Anzahl_Zeilen A ".Anzahl_Zeilen($A)."\n";
echo "Anzahl_Spalten A ".Anzahl_Spalten($A)."\n";

echo "Anzahl_Zeilen B ".Anzahl_Zeilen($B)."\n";
echo "Anzahl_Spalten B ".Anzahl_Spalten($B)."\n";

// Check if the Matrix is calculable

if(Anzahl_Spalten($A) != Anzahl_Zeilen($B)) {
 echo "Error";
 exit(1);
}

// Initialize the Matrix with the matching Result Dimension

for($i = 0; $i < Anzahl_Zeilen($A); $i++) {
 for($j = 0; $j < Anzahl_Spalten($B); $j++) {
  $C[$i][$j] = 0;
 }
}

print_r($C);

// Multiply Function

function MATRIX_MULTIPLY($A, $B) {

 for($i = 0; $i < Anzahl_Zeilen($A); $i++) {
  for($j = 0; $j < Anzahl_Spalten($B); $j++) {
   for($k = 0; $k < Anzahl_Spalten($A); $k++) {
    $C[$i][$j] = $C[$i][$j] + $A[$i][$k] * $B[$k][$j];
    echo "$i $j - ".$C[$i][$j]."\n";
   }
  }
 }

return $C;

}

$C = MATRIX_MULTIPLY($A, $B);

print_r($C);

?>

Ausgabe

Mathiass-MacBook-Pro:Desktop mathias$ php -f matrix.php
Anzahl_Zeilen A 3
Anzahl_Spalten A 4
Anzahl_Zeilen B 4
Anzahl_Spalten B 2
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
        )

    [1] => Array
        (
            [0] => 0
            [1] => 0
        )

    [2] => Array
        (
            [0] => 0
            [1] => 0
        )

)
0 0 - 4
0 0 - 5
0 0 - 8
0 0 - 12
0 1 - 6
0 1 - 10
0 1 - 25
0 1 - 49
1 0 - 2
1 0 - 4
1 0 - 5
1 0 - 6
1 1 - 3
1 1 - 11
1 1 - 16
1 1 - 22
2 0 - 4
2 0 - 5
2 0 - 6
2 0 - 7
2 1 - 6
2 1 - 10
2 1 - 15
2 1 - 21
Array
(
    [0] => Array
        (
            [0] => 12
            [1] => 49
        )

    [1] => Array
        (
            [0] => 6
            [1] => 22
        )

    [2] => Array
        (
            [0] => 7
            [1] => 21
        )

)
How to parse the stock name in Yahoo Finance? Complete Script This script will open
How to parse the stock currency in Yahoo Finance? You can use the following script
Rekursive Umsetzung des LCS Problems in PHP (Längste gemeinsame Teilfolge) - Hauptprogramm, Initialisierung, Berechnung der
Anleitung: Den kompletten Linux Server per einfachem HTTP Browser Aufruf herunterfahren. Funktioniert auch aus der
Umsetzung der Matrix Ketten Multiplikation in der Programmiersprache PHP. Beispiele Klammerungen, Feststellungen, Laufzeit und Programmcode.

Hinterlasse einen Kommentar

  Abonnieren  
Benachrichtige mich bei
Scroll to Top