prøv at lave nestede loops der gennem løber alle tegn i hvert loop pseudo kode: tegnXX er en char og lig 0 i starten loop1: print tegn1 tegn1++ loop2: print tegn2 tegn2++ loop3: print tegn3 tegn3++ .. print '\n' // for linieskrift
Hvis du vil have en komplet liste over alle tegn i en 16 ciffret løsning kommer du nok til at vente et stykke tid. Eftersom det er 255^16 = 3,1962657931507848761677563491821e+38 forskellige muligheder du vil få. Hvis vi sagde at din computer kunne "indtaste" 10 milliarder = 10000000000 løsninger i sek. (hvilket jeg ikke tror medmindre du har en rimelig sej computer) ville du komme til at vente i : 31.962.657.931.507.848.761.677.563.491,8213 sek som er lig med : 532.710.965.525.130.812.694.626.058,197021 min som er lig med : 8.878.516.092.085.513.544.910.434,30328369 timer som er lig med : 369.938.170.503.563.064.371.268,095970154 døgn som er lig med : 12.331.272.350.118.768.812.375,6031990051 måneder som er lig med : 1.027.606.029.176.564.067.697,96693325043 år
Du vil også for brug for en hel del ram eller hdd plads hvis du vil lager denne liste, eftersom den komplette liste vil komme til at fylde : 3,1962657931507848761677563491821e+38 * 16 = 5,1140252690412558018684101586914e+39 bit som er lig med : 5,1140252690412558018684101586914e+39 / 8 = 6,3925315863015697523355126983638e+38 byte som er lig med : 6,3925315863015697523355126983638e+38 / 1024 = 624.270.662.724.762.671.126.514.911.949.585.000 kb som er lig med : 624.270.662.724.762.671.126.514.911.949.585.000 / 1024 = 609.639.319.067.151.046.021.987.218.700.767 mb som er lig med : 609.639.319.067.151.046.021.987.218.700.767 / 1024 = 595.350.897.526.514.693.380.846.893.262,467 gb OSV OSV...
Jeg håber ikke jeg har taget modet helt fra dig, men det kan godt være at du skal regne med at du ikke kommer til at få genereret en komplet liste over forskellige 16 cifferet løsninger :(
Mine udregninger er ud fra hvad du skrev i spørgsmålet "alle tegn og bogstaver" er derfor regnet udfra 255 tegn. men er det kun bogstaver i det danske alfabet bliver tiden og størelse strax meget mindre : vil så komme til at tage : 28^16 / 311040000000000000 = 458.893,8719 år og vil fylde : 28^16 * 16 / 8589934592 = 265.863.444.556.808 gb
djernaes> mener du ikke 256^5 ? hmm_t> du er lidt inde på emnet tidskompleksitet. En funktion der skal lave alle mulige kombinationer mellem x tal, vil have kompleksiteten O(n^x) (store-o af n^x), hvilket vil give en meget stejl graf hvis man tegnede det. Der er ingen let løsning på det problem, det er jo samme teknik der bruges til at gætte passwords (brute force). Desunden tror jeg også at det der tager længst tid er at vise outputtet, men det kunne jo komme an på et eksperiment.
Jaa,så må jeg vel bruge noget lignene soreno's metode!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.