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

藏色散人
Freigeben: 2023-03-12 08:10:01
Original
2183 Leute haben es durchsucht

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 开始支持
?>
Nach dem Login kopieren

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>";
?>
Nach dem Login kopieren

Das Ausgabeergebnis ist:

0.353804
0.715058
0.598421
13.484704
0.5
1.4
Nach dem Login kopieren

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);
Nach dem Login kopieren

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 函数。
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!