Sticky PRNG (Pseudo-Random Number Generator)

    This site uses cookies. By continuing to browse this site, you are agreeing to our use of cookies. More details

    • PRNG (Pseudo-Random Number Generator)



      Ich habe mal den Standard VBA PRNG nach Python übersetzt. Der dortige PRNG ist ein linearer Kongruenzgenerator.
      Hiermit hat man einen kleinen Pseudo-Zufallszahlengenerator, man kann natürlich auch den in Python integrierten weiterhin nutzen :P :D.

      Python Source Code

      1. # -*- coding: utf-8 -*-
      2. class PRNG(object):
      3. __prngVal = 0.0
      4. def __init__(self, howManyTimes):
      5. print("[+] Erzeuge PRNG Objekt...")
      6. try:
      7. self.__generate(howManyTimes)
      8. print("\t PRNG Objekt wurde erfolgreich erzeugt...")
      9. except:
      10. print("[-] Fehler beim erzeugen eines PRNG Objektes...")
      11. def __generate(self, howManyTimes):
      12. rndVal = 0x50000
      13. i = 0
      14. rndFloat = 0.0
      15. for i in range(0, howManyTimes):
      16. rndVal = (rndVal * 0x43FD43FD + 0xC39EC3) & 0xFFFFFF
      17. rndFloat = float(rndVal / 16777216.0)
      18. self.__prngVal = rndFloat
      19. def getPRNGValue(self):
      20. return self.__prngVal
      21. def main():
      22. test = PRNG(22)
      23. print("[+] generierter Wert : " + str(test.getPRNGValue()))
      24. print("[+] (Entspräche : %d)" % (test.getPRNGValue() * 100))
      25. del test
      26. print(" PRNG Objekt zerstört...")
      27. print("[+] Beende...")
      28. if __name__ == '__main__':
      29. main()
      Display All

      ..:: Beispielausgabe ::..