Passionat3ly kérdése:
Hogyan tudom ezt végteleníteni pythonban?
2022. febr. 21. 19:47
2/4 A kérdező kommentje:
Nagyon szépen köszönöm
2022. febr. 21. 22:51
3/4 anonim válasza:
A ciklus már megvan ok. Mást írok.
Ez így nem túl bölcs megoldás, matematikus szemmel nézve főleg nem :
ran = random.randrange(10**80)
myhex = "%064x" % ran
#limit string to 64 characters
myhex = myhex[:64]
E helyett garatnáltan nem lépi túl a 64 hosszt hexába:
myhex = "%064x" % random.randrange(1<<(64*4))
Vagy másik megoldás a getrandbits ami a hívási láncba amúgy is benne van ha pl a randrange,randint ... esetében is. Akkor miért ne mindjárt azt használjuk amikor úgy is pont kettő egész hatványa méretű a tartomány:
myhex = "%064x" % random.getrandbits(64*4)
64*4 helyett 256-ot is írhattam volna, csak így látod jobban hogy jött ki, pont a kettő hatványok miatt, illetve hogy a tartomány is pont kettő hatványa méretű.
4/4 anonim válasza:
Még eszembe jutott előzőhöz: A másik ha ran = random.randrange(10**80) ennek hexába veszed az első 64 jegyét akkor meg ez az egyenletes eloszlást is csorbítja, vagyis vannak 64 hosszú hexa értékek melyek valószínűbbek mások meg nem, még akkor is ha a generátor megfelel az egyenletességi hipotézisnek, ez akkor is lerontja. Míg az én megoldásom annyira egyenletes eloszlást produkál amennyire a generátor garantálja. Bár nem tudom mire kell, de security dologra nem ajánlott az a sima random sem az én javaslatom szerint se amit írtam előzőleg.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!