Les nombres aléatoires générés lorsque les données PHP sont automatiquement incrémentées ne sont pas répétés.

巴扎黑
Libérer: 2023-03-15 14:00:01
original
1769 Les gens l'ont consulté

Cet article présente principalement comment utiliser PHP pour générer des nombres aléatoires non répétitifs basés sur des données d'incrémentation automatique. L'article fournit un exemple de code détaillé pour votre référence et votre étude. Il a une certaine valeur de référence pour tous les amis qui en ont besoin. jetez un œil ensemble ci-dessous.

Cet article présente principalement le contenu pertinent de PHP pour générer des nombres aléatoires non répétitifs basés sur des données auto-incrémentées. Il est partagé pour la référence et l'apprentissage de chacun. Il est inutile d'en dire plus ci-dessous et d'aller directement au. code :

La clé Le fait est que le contrôle du nombre de chiffres des données auto-croissantes générées

se trouve à deux endroits

1. Si le tableau de base $base est un tableau de 8 bits, il doit comporter 8 chiffres

2. $i est un nombre auto-incrémenté. ne peut pas dépasser 8 chiffres

Le résultat de l'analyse simple actuelle est le ci-dessus. Si vous souhaitez une non-duplication globale, il est recommandé d'utiliser uuid ou similaire.

Exemple de code :


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";
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal