Heim >php教程 >PHP开发 >Beispielanalyse der in PHP implementierten Gleichungslösung

Beispielanalyse der in PHP implementierten Gleichungslösung

高洛峰
高洛峰Original
2016-12-23 15:51:332309Durchsuche

Das Beispiel in diesem Artikel beschreibt die in PHP implementierte Gleichungslösung. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

1 Anforderungen

1. Geben Sie einen Durchschnittswert an. Die Differenz zwischen dem Maximalwert und dem Minimalwert von X2. Erfüllen Sie die folgende Formel: 🎜>1)482)0,453)m1, m2, m3 sind alle positive Dezimalzahlen mit 4 Ziffern

2. Implementierung


Aufgrund der Anforderungen habe ich mir überlegt, zwei Funktionen für die Verarbeitung zu verwenden.

1) Eines ist der bekannte Durchschnitt, finden Sie die Funktion createX() der drei Zahlen, die die Bedingungen für diesen Durchschnitt erfüllen

2) Das andere ist das bekannte X, finden Sie die Funktion das erfüllt die Formel (@ 1) und drei Dezimalstellen der Randbedingungen m0, m1, m2

Das Folgende ist die spezifische Code-Implementierung. Bitte weisen Sie auf etwaige Mängel hin

<?php
//运行echo "开始运行 \n";
run();
echo "运行结束 \n";
function run()
{/*{{{*/$data = array(40.9, 40.5, 44.3, 47.8, 48.5, 42.1, 46.2);
  $res = array();
  foreach($dataas$key)
  {/*{{{*/echo "处理 {$key}\n";
    $resX = createX($key);
    foreach($resXas$keyX)
    {
      $keyStr = (string)$key;
      $keyXStr = (string)$keyX;
      $res[$keyStr][$keyXStr] = createParams4M($keyX);
    }
  }/*}}}*/error_log(print_r($res,true)."\n", 3, &#39;/tmp/result.log&#39;);
var_dump(99999,$res);exit;
  return$res;
}/*}}}*///1.产生平均数function createX($ave)
{/*{{{*/$sum = 3*($ave * 1000);
  $x1 = $x2 = $x3 = 0;
  $rand4X1X2 = rand(0, 300);
  //$x2 > $x1 > $x3;for($i=0; $i< $ave * 1000 + 550; $i++)
  {
    $x2 = $i;
    $x1 = $x2 - $rand4X1X2;
    $x3 = $sum -($x1 + $x2);
    $positive = $x1 > 0 && $x2 > 0 && $x3 > 0;
    $flag = ($x2- $x3 < 400 && $x2 - $x3 > 200);
    if($positive && $flag)
    {
      //echo "捕捉到\n";$roundX1 = round($x1/1000, 1);
      $roundX2 = round($x2/1000, 1);
      $roundX3 = round($x3/1000, 1);
      $res = array($roundX1, $roundX2, $roundX3);
      $flag = $roundX1 != $roundX2
          && $roundX3 != $roundX2
          && $roundX3 != $roundX1;
      if($flag)
      {
        //echo "捕捉到\n";return$res;
      }
    }
  }
  echo "Fail 未捕捉到\n";
  returnarray($x1, $x2, $x3);
}/*}}}*///2.产生平均数function createParams4M($aveX)
{/*{{{*/$begin = 48000;
  $end = 51000;
  $m0 = $m1 = $m2 = 0;
  $rand4M1M2 = rand(450, 550);
  $m0 = rand($begin, $end);
  $m1 = $m0 + $rand4M1M2;
  $m2 = $m1 - (($m1 - $m0)*$aveX/100);
  //echo "捕捉到\n";returnarray(round($m0/1000, 4), round($m1/1000, 4), round($m2/1000, 4));
}/*}}}*/?>
3. Aufgetretene Probleme und Mängel

1. [Array-Schlüsselwerte können nicht gleich sein] Was uns zunächst auffiel, war, dass die ursprünglichen drei Werte der Durchschnitt waren Möglicherweise ist es dasselbe, aber die Array-Schlüssel können nicht identisch sein, daher haben wir einige Verarbeitungsvorgänge durchgeführt.

Gleichzeitig wird der Schlüsselwert in eine Zeichenfolge konvertiert

2. [Dezimalverarbeitung] Da es sich außerdem um 4-stellige Dezimalstellen handelt, ist es unpraktisch, diese durchzugehen und auszugeben Die Bedingungen sind erfüllt, also einfach mit 1000 multiplizieren und schließlich durch 1000 dividieren, um die Wiederherstellung durchzuführen.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.

Weitere verwandte Artikel zur Beispielanalyse der in PHP implementierten Gleichungslösung finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn