Kezdőoldal » Számítástechnika » Programozás » Hogyan generáljam le az...

Hogyan generáljam le az összes előállítható karakterkombinációt?

Figyelt kérdés

Egy string értékét szeretném úgy változtatni, hogy ha a végtelenségig futna, akkor minden lehetséges betűsorozat egyik pillanatban pont a string tartalma volt.


Tehát először "a" lenne az értéke


aztán b,c,...,z, aa, ... az, aaa ......


Egyszerűen nem tudok erre jó algoritmust írni. Valaki segítene?


2017. máj. 11. 09:58
1 2
 11/14 anonim ***** válasza:

Leírom mégegyszer, mert látom nehéz a felfogás.


"Adva van egy hash érték. És a feladat leírása csak annyit mond, hogy találjuk meg azt a karaktersorozatot, amelyikből generálták..."


A feladatot nem lehet megoldani, akármilyen csoda algoritmust írsz akkor sem.

A hash függvények nem reverzibilisek, azaz 1 outputhoz több input is tartozhat.

Így ha találsz is egy megoldást, semmi sem garantálja, hogy valóban az volt az input, csupán azt, hogy a helyes megoldások között ott van az is, amit megtaláltál.

2017. máj. 11. 11:40
Hasznos számodra ez a válasz?
 12/14 anonim ***** válasza:

A brute force meg eleve elméleti lehetőség kicsi kombinatorikát kellett volna tanulni 1 karakteres string 26 kombináció angol abc mellett

2 karakter 26*26

3 karakter 26*26*26

4 karakter ugye 26^4 en

Irhatsz vegtelen ciklust de már nyolc karakteres stringnél is a kombinációk száma 208827064576 ami másodpercenként 15000 hashel számolva 161,13 napba telne. Mivel semmit sem tudunk a string hosszárol karaktereiből igy egy fektetett nyolcas a kombinációk száma. És nem allithatod le a ciklust semmilyen egyezésnél sem mert a hash ertek fix hosszú a bemenet korlátlan hosszúságú lehet igy matematikailag mindenkepp tobb inputnak lesz azonos hash-e plusz a hash-ek bináris allományokkal is elvannak igy teljes 0-FF kozotti lehetséges kapcsolat. Hogy mi volt ebből az input stringet te nem dontheted el. Sőt a tanárod sem hiába tudja miből generálta a hash-t. Hozhatsz neki egy az övétől teljesen különböző inputra azonos hash-t es mivel neki sincs végtelen memoriája nem mondhatja rá hogy nem jó. A feladat megoldásainak száma végtelen. De nem jelenti azt hogy elég egy random stringgel odaállitani elé.kell az algoritmus aztán szolj a tanárodnak futtassa le ő.

2017. máj. 11. 12:09
Hasznos számodra ez a válasz?
 13/14 anonim ***** válasza:
93%

Konkrét algoritmust már írtak páran ha jól látom, ha esetleg python-t használsz, akkor abban ott az itertools.product() függvény, ami pont erre való.

[link]


pl.:

import itertools

for i in range(3):

. . for s in itertools.product('abcd', repeat=i):

. . . . print(s)

2017. máj. 12. 10:11
Hasznos számodra ez a válasz?
 14/14 sharkxxx ***** válasza:

Teljes Python program:

[link]

2017. máj. 16. 23:35
Hasznos számodra ez a válasz?
1 2

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!