2017-04-21 4 views
0

Ich habe ein Problem machen eine C(m,n)=m!/n!(m-n)! Formel unter Verwendung einer Funktion und for Schleife in PHP, mein Code sieht wie folgt aus faktoriellen:2 unterschiedliche Anzahl Eingabefunktion und für Schleife in PHP

<?php 
 
function factorial($m,$n){ 
 
\t $facm=$m; 
 
\t for ($i=$m-1; $i >= 1 ; $i--) { 
 
\t \t $facm*=$i; 
 
\t } 
 
\t $facn=$n; 
 
\t for ($i=$n-1; $i >= 1 ; $i--) { 
 
\t \t $facn*=$i; 
 
\t } 
 
\t $faco=$m-$n; 
 
\t for ($i=$m-$n; $i >= 1 ; $i--) { 
 
\t \t $faco*=$i; 
 
\t } 
 
\t return $facm/$facn*$faco; 
 
} 
 
} 
 

 
echo factorial($bilm,$biln); 
 
?>

aber dieser Code zeigt ein falsches Ergebnis, stimmt es nicht mit meinem Code? Danke für Ihre Aufmerksamkeit.

+0

was 2-Eingang faktorielles? Sie möchten die Fakultät von 2 verschiedenen Zahlen finden? – siddiq

+0

Ja, das ist, was ich meine, ist es möglich, Funktion Fakultät ($ m, $ n) zu verwenden? wenn es möglich ist, wie man es macht? danke –

Antwort

0

Ja, Sie können wie folgt tun, wenn es sich um 2 Parameter handelt. Wenn sich die Parameter dynamisch ändern, dann übergeben Sie das Array an die Funktion und machen Sie eine foreach dort.

<?php 
    $bilm = $_POST['bilm']; 
    $biln = $_POST['biln']; 

    function factorial($m,$n){ 

      $facm=$m; 
      for ($i=$m-1; $i >= 1 ; $i--) { 
       $facm*=$i; 
      } 

      $facn=$n; 
      for ($i=$n-1; $i >= 1 ; $i--) { 
       $facn*=$i; 
      } 

      $facmsubn = $msubn=$m-$n; 
      for ($i=$msubn-1; $i >= 1 ; $i--) { 
       $facmsubn*=$i; 
      } 

      return ($facm/$facn)*$facmsubn; //By assuming (m!/n!)*(m-n)!; If it is m!/(n!*(m-n)!) then change the logic as per your formula 
    } 
      echo factorial($bilm,$blin); 
    ?> 

Aber warum brauchen Sie Pass 2 Parameter? Ein zweimaliger Aufruf der Funktion wäre sinnvoll.

Runtime-Umgebung ist hier http://phpfiddle.org/main/code/zkfs-21am

+0

Ich versuche, diese Formel zu machen: C (m, n) = m!/n! (m-n) !, verwende ich Ihren Vorschlag, mit meinem Code, aber das Ergebnis ist immer noch nicht richtig. –

+0

Ich habe den Code gemäß Ihrer Formel aktualisiert. Das sollte funktionieren. Ändern Sie auch die Logik nach Ihren Bedürfnissen im Code und lassen Sie es mich wissen. – siddiq

+0

Ich habe ein Problem Code zu diesem Kommentar einfügen, ich habe versucht, Strg + k, aber das funktioniert nicht, ich versuchte 4 Leerzeichen vor der Zeile, es funktioniert auch nicht. versuche, ">" zu verwenden, funktioniert auch nicht. wie Sie Ihren Code in einen Kommentar @siddiq einfügen? Ich möchte meinen Code zeigen, aber es ist eine schreckliche Form. –

Verwandte Themen