Was ist der einfachste Weg, um ein Verhältnis in PHP mehrere Nummern?
Habe ich angepasst, dies aus einem Beispiel dass ich gefunden im Netz...
function ratio($a, $b) {
$_a = $a;
$_b = $b;
while ($_b != 0) {
$remainder = $_a % $_b;
$_a = $_b;
$_b = $remainder;
}
$gcd = abs($_a);
return ($a / $gcd) . ':' . ($b / $gcd);
}
echo ratio(9, 3); //3:1
Jetzt will ich es verwenden func_get_args()
und Rückkehr der Verhältnisse für mehrere Nummern. Es sieht aus wie ein Rekursives problem, und die Rekursion freaks me out (vor allem, wenn meine Lösungen unendlich-Schleife)!
Wie würde ich das ändern, das so viele Parameter wie ich wollte?
Dank
- nehmen Sie es von c Antwort : stackoverflow.com/questions/527860/calculate-a-ratio-in-c
- Was meinst du mit 'die Verhältnisse für mehrere zahlen'? So etwas wie
2 : 3 : 5
? Was Sie tun können, ist zunächst die Berechnung der prime factorizations für jedes Element in der Liste von zahlen. Das Produkt der Primfaktoren, die in der Kreuzung ist der größte gemeinsame Nenner. Die jeweiligen Anteile sind berechnet wie in deinem Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. versuchen Sie, diese gcd-Funktion http://php.net/manual/en/function.gmp-gcd.php
Oder sonst musst du definieren Sie eine Funktion gcd wie
Dann ändern Sie die ratio-Funktion