Zufällige 5-stellige Zeichenfolgen mit minimaler Duplizierung generieren
Frage: Wie kann ich effizient eine Zeichenfolge mit genau generieren 5 zufällige Zeichen mit der geringsten Duplikatwahrscheinlichkeit?
Antwort:
Methode 1:
<code class="php">$rand = substr(md5(microtime()), rand(0, 26), 5);</code>
Methode 2:
<code class="php">$seed = str_split('abcdefghijklmnopqrstuvwxyz' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . '0123456789!@#$%^&*()'); shuffle($seed); $rand = ''; foreach (array_rand($seed, 5) as $k) $rand .= $seed[$k];</code>
Methode 3:
<code class="php">function incrementalHash($len = 5) { $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $base = strlen($charset); $result = ''; $now = explode(' ', microtime())[1]; while ($now >= $base) { $i = (int)$now % $base; $result = $charset[$i] . $result; $now /= $base; } return substr(str_repeat($charset[0], $len) . $result, -$len); }</code>
Hinweis: Für Hochsicherheitsanwendungen wird empfohlen, eine robustere Variante zu verwenden Zufallszahlengenerator.
Das obige ist der detaillierte Inhalt vonWie erstelle ich zufällige 5-stellige Zeichenfolgen mit minimaler Duplizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!