Heim  >  Artikel  >  Backend-Entwicklung  >  Übung 5 zu mathematischen PHP-Funktionen: Zufällige Gleitkommazahlen abrufen

Übung 5 zu mathematischen PHP-Funktionen: Zufällige Gleitkommazahlen abrufen

藏色散人
藏色散人Original
2021-08-26 09:16:502251Durchsuche

Heute stellen wir Ihnen weiterhin den Inhalt der PHP-Übungsreihe für mathematische Funktionen vor, die Ihnen im vorherigen Artikel „PHP-Übung für mathematische Funktionen vier: Gleitkommazahlen von Null auf die angegebene Anzahl von Dezimalstellen runden“ vorgestellt wurde. Freunde in Not können lernen, wie man eine Gleitkommazahl von Null auf eine bestimmte Anzahl von Dezimalstellen rundet. ~

Das Thema dieses Artikels besteht darin, Ihnen beizubringen, wie Sie eine PHP-Funktion schreiben, um eine zufällige Gleitkommazahl zu erhalten.

Lassen Sie mich zunächst eine kurze Einführung in die Funktionsweise von Gleitkommazahlen geben, die auch als Zahlen mit doppelter Genauigkeit oder reelle Zahlen bezeichnet werden. Sie können in PHP mit einer der folgenden Syntaxen definiert werden:

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
$d = 1_234.567; // 从 PHP 7.4.0 开始支持
?>

Jetzt werde ich die Implementierungsmethode zum Erhalten zufälliger Gleitkommazahlen direkt vorstellen:

PHP-Codebeispiel lautet wie folgt:

<?php
function rand_float($st_num=0,$end_num=1,$mul=1000000)
{
    if ($st_num>$end_num) return false;
    return mt_rand($st_num*$mul,$end_num*$mul)/$mul;
}
echo rand_float()."<br>";
echo rand_float(0.6)."<br>";
echo rand_float(0.5,0.6)."<br>";
echo rand_float(0,20)."<br>";
echo rand_float(0,3,2)."<br>";
echo rand_float(0,2,20)."<br>";
?>

Das Ausgabeergebnis ist:

0.353804
0.715058
0.598421
13.484704
0.5
1.4

Der Aktualisierungslaufeffekt ist wie folgt:

GIF 2021-8-26 星期四 上午 9-11-35.gif

Wie oben gezeigt, können wir zufällige Gleitkommazahlen erhalten.

Hier stelle ich Ihnen eine Funktion vor: mt_rand

Die Funktion mt_rand() verwendet den Mersenne-Twister-Algorithmus, um zufällige ganze Zahlen zu generieren.

Diese Funktion ist eine bessere Wahl zum Generieren von Zufallswerten und liefert viermal schneller Ergebnisse als die Funktion rand(). Wenn Sie eine zufällige Ganzzahl zwischen 10 und 100 (einschließlich) wünschen, verwenden Sie mt_rand(10,100).

Die Syntax lautet:

mt_rand();
or
mt_rand(min,max);

Der Rückgabewert ist eine zufällige Ganzzahl zwischen min (oder 0) und max (oder mt_getrandmax()) (einschließlich Grenzwerten). Wenn max < min, wird FALSE zurückgegeben.

注:浮点数的精度
浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时的误差传递。
此外,以十进制能够精确表示的有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999999991118...。
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。

Die chinesische PHP-Website-Plattform bietet viele Video-Lehrressourcen. Willkommen zum Erlernen des „

PHP-Video-Tutorials“!

Das obige ist der detaillierte Inhalt vonÜbung 5 zu mathematischen PHP-Funktionen: Zufällige Gleitkommazahlen abrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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