Heim  >  Artikel  >  Backend-Entwicklung  >  Die beim automatischen Inkrementieren von PHP-Daten generierten Zufallszahlen werden nicht wiederholt.

Die beim automatischen Inkrementieren von PHP-Daten generierten Zufallszahlen werden nicht wiederholt.

巴扎黑
巴扎黑Original
2017-08-22 17:47:311756Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von PHP zum Generieren sich nicht wiederholender Zufallszahlen basierend auf automatisch inkrementierten Daten vorgestellt. Der Artikel bietet einen bestimmten Referenzwert für alle Freunde, die ihn benötigen Schauen Sie sich das unten zusammen an.

Dieser Artikel stellt hauptsächlich den relevanten Inhalt von PHP vor, um sich nicht wiederholende Zufallszahlen basierend auf sich selbst erhöhenden Daten zu generieren. Es ist sinnlos, weiter unten mehr zu sagen Code:

Der Schlüssel Der Punkt ist, dass die Kontrolle über die Anzahl der Stellen der generierten selbstansteigenden Daten

an zwei Stellen erfolgt

1. Wenn das $base-Basisarray ein 8-Bit-Array ist, muss es 8 Ziffern haben

2. $i ist eine automatisch inkrementierende Zahl darf 8 Ziffern nicht überschreiten

Das Ergebnis der aktuellen einfachen Analyse ist das obige. Wenn Sie eine globale Nichtduplizierung wünschen, wird empfohlen, uuid oder ähnliches zu verwenden.

Beispielcode:


function swap($n,$base) {
$mask = 19; //1 + 2 + 16
 $n = intval($n, 10);
 $idx = $n & $mask;//取出标志位
 $xor = $base[$idx] ^ $n;//根据标识为找到对应的base,异或n
 
 return (($xor | $mask) ^ $mask) | $idx;//覆盖标识位
}
$newArray=[];
$base = array (
 0 => 1918407,
 1 => 5529570,
 2 => 6527234,
 3 => 6550962,
 4 => 8054672,
 5 => 3141234,
 6 => 2125630,
 7 => 6978033,
 8 => 4623630,
 9 => 4736420,
 10 => 7767295,
 11 => 9679880,
 12 => 1665600,
 13 => 6044373,
 14 => 4661383,
 15 => 5771843,
 16 => 2206123,
 17 => 5685396,
 18 => 5571647,
 19 => 7178311,
);
for ($i=0;$i<1000000;$i++) {
 $newArray[]= swap($i,$base)."\r\n";
}

Das obige ist der detaillierte Inhalt vonDie beim automatischen Inkrementieren von PHP-Daten generierten Zufallszahlen werden nicht wiederholt.. 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