sql >> Database >  >> RDS >> Mysql

Algoritme voor het genereren van een willekeurig getal

Nee, je algoritme is niet schaalbaar. Wat ik eerder heb gedaan, is nummers serieel uitgeven (elke keer +1) en ze vervolgens door een XOR-bewerking leiden om de bits door elkaar te halen, waardoor ik schijnbaar willekeurige getallen krijg. Natuurlijk zijn ze niet echt willekeurig, maar ze zien er zo uit in de ogen van gebruikers.

[Bewerken] Aanvullende informatie

De logica van dit algoritme gaat als volgt:je gebruikt een bekende reeks om unieke getallen te genereren en dan manipuleer je ze deterministisch, zodat ze er niet meer serieel uitzien. De algemene oplossing is om een ​​of andere vorm van codering te gebruiken, wat in mijn geval een XOR-flipflop was, omdat het zo snel mogelijk is en het voldoet aan de garantie dat getallen nooit botsen.

U kunt echter andere vormen van codering gebruiken, als u nog meer willekeurig uitziende getallen wilt, boven snelheid (u hoeft bijvoorbeeld niet veel tekens tegelijk te genereren). Het belangrijkste punt bij het kiezen van een coderingsalgoritme is "de garantie dat getallen nooit met elkaar in botsing komen". En een manier om te bewijzen of een encryptie-algoritme aan deze garantie kan voldoen, is door te controleren of zowel het oorspronkelijke getal als het resultaat van de encryptie hetzelfde aantal bits hebben, en dat het algoritme omkeerbaar is (bijectie).

[Met dank aan Adam Liss &CesarB voor uitbreiding van de oplossing]



  1. een html-pagina crawlen met php?

  2. Selecteer rijen uit een tabel waar een rij in een andere tabel met dezelfde id een bepaalde waarde heeft in een andere kolom

  3. Vitess en MySQL uitvoeren met ClusterControl

  4. Mysql insluiten in Java-desktoptoepassing