2019. június 16., vasárnap

Gyorskeresés

Vajon létrehozható a világ összes képe egy adott méretben?

Írta: |

[ ÚJ BEJEGYZÉS ]

Épp a Modellek és algoritmusok ZH-ra készülök. Ez a téma olyannyira sokkolt, hogy eszembe jutott egy elmebeteg ötlet.
Valahol olvastam, hogy a Windows jelszó nem biztonságos, mert állítólag könnyen törhető.
Ez igaz is. Lásd OphCrack (lesz róla szó az egyik címlapos cikkben).
Ebben le van generálva az összes lehetséges 16 hosszú (0..9,a..b,A..B) jelszó HASH kódja.
De minket most nem ez érdekel, hanem a nyers erő módszere. Amikor végigpróbáljuk (Brute-Force) az összes lehetséges jelszót a kiválasztott karakterekből a megadott hosszúságig.

Eszembe jutott, hogy mi lenne, ha le tudnánk generálni az összes lehetséges képet egy adott méretben.

Gondoljunk csak bele. Egy kép sok képpontból tevődik össze. Ha legeneráljuk az összes lehetséges módon egy 1024*768 méretű kép pontjait, akkor megkapjuk a világ összes 1024*768 méretű képét.

EZ PERSZE CSAK EGY ELMÉLETI FELVETÉS!

Mielőtt valaki lelkesen nekiesne a feladatnak, nem árt tisztázni, hogy mégis hány művelettel hajtható végre mindez.

1024*768 a kép mérete.

Egy képpont színét (tartalmát) leírhatjuk 3 byte-on (24 bit).
1. byte: R (Red, piros): 0..255
2. byte: G (Green, zöld): 0..255
3. byte: B (Blue, kék): 0.255

1024 * 768 * 3 Byte = 2.359.296 Byte = 2304 KB = 2,25 MB

255 * 255 * 255 = 16.581.375 lehetséges szín.

1024 * 768 = 786.432 képpont.

16.581.375 lehetséges színt kell a 786.432 ponton az összes lehetséges módon elhelyezni.
Ami pedig n (16.581.375) elem k-ad (786.432) osztályú ismétléses variációinak a száma.
Az pedig n^k = 16.581.375^786.432 = (ehhez GHC kell :D )

main = writeFile "H:\\eredmeny.txt" (show [16581375^786432])

Az eredmeny.txt tartalma itt megtekinthető: eredmeny.txt

Mint az látható is ez egy 5.677.742 számjegyből álló szám.

Tegyük fel, hogy valami giga teljesítményű géppel le tudnánk generálni 1.000.000.000 (1 milliárd) képet másodpercenként. (Azért érezzük, hogy erre mennyi esély van :DDD )
Ebben az esetben is egy 5.677.742 számjegyű szám fejezné ki, a legeneráláshoz szükséges időt másodpercben.
Arról pedig már ne is beszéljünk, hogy ez a számot még meg kell szorozni 2.359.296 byte-al és megkapjuk, hogy mekkora tárterület szükségeltetne ezek tárolásához.

Gondoljunk bele, hogy benne lenne az egész életünk képekben. Minden lehetséges nézőpontból.
Persze, hogy mindent ábrázolni tudjunk nem elég 1024*768. Vegyük csak a számokat. Ha a számegyenesen tetszőleges számot tudunk ábrázolni, akkor azt nyilván csak végtelen számú képen tudnánk megjeleníteni. Következésképp ezen a felbontáson csupán egy része tudjuk megjeleníteni az egésznek.

Felmerült, hogy kisebb méretben vizsgáljuk a kérdést, kevesebb színnel. Nézzük mi lenne ha 320*240-ben, 256 szín felhasználásával tennénk ugyanezt.

Képméret: 320*240 = 76.800 = k. Egy képpont színe 256 = n féle lehet.
Így a lehetséges változatok száma: 256^76.800 (n^k).

A kapott szám itt megtalálható: eredmeny2.txt
Ez a szám már csak 184.553 jegyből áll. De érezzük azért, hogy esély nem lenne rá, hogy ezt bárki kivitelezze.

Hozzászólások

(#1) szablya


szablya
(kvázi-tag)

Enyém ami pornó mind :DDD :DDD A többit megtarthatod :DD

Madarat tolláról, embert desktopjáról. | Inni és inni adni. | Ellopták az alisok a tankot. | Az igazi tuningos Prescott kávét iszik. - all by szablya | "Igazat az igazaknak, zárják be a hazugokat!" \m/

(#2) No-kia


No-kia
(őstag)

nekem tetszett az írás, jó ilyenekről olvasni , nekem legalább is, szeretem az ilyen elméleti feszegetéseket, tök poén, és nem mellesleg jó elgondolás

Nokia 500 | Ford Sierra 2.0i | Dell N5010

(#3) Pörp


Pörp
(senior tag)

Indulásként inkább próbálkozzunk 320x240-es felbontással, hátha kisebb helyen elférne a világ összes képe :)

(#4) No-kia válasza Pörp (#3) üzenetére


No-kia
(őstag)

várjuk a levezetést ;] :P

Nokia 500 | Ford Sierra 2.0i | Dell N5010

(#5) lesaux


lesaux
(PH! kedvence)

Félig zseni, félig őrült. Remélem, élvezed! :)

utazómajom - http://facebook.com/utazomajom/

(#6) pIIrash válasza No-kia (#2) üzenetére


pIIrash
(tag)

Csak nehogy valakinek sikerüljön. :B :D

Azóta már fejben továbbfejlesztettem a dolgot.
A mi dimenziónk nem más, mint egy Isteni Brute-Force eredménye ;]

random(0.99) = 1? Aki nem ír teló számot vagy nem tudom 8 óránál hosszabb ideig elérni, azzal az üzletet semmisnek tekintem.

(#7) No-kia válasza pIIrash (#6) üzenetére


No-kia
(őstag)

elég hatásos, és még is mi számolta? vgay egy olyan dolog ami az emberi ésszel felfoghatatlan? am sztem jobb lenne most elmenned orvoshoz, nehogy vmi komolyabb bajod legyen ;] :DDD

Nokia 500 | Ford Sierra 2.0i | Dell N5010

(#8) pIIrash válasza Pörp (#3) üzenetére


pIIrash
(tag)

Ez már határozottan előnyösebb lenne. Így már csak 554.469 számjegyű, 7-essel kezdődő értékkel kell számolni.

Hogy érzékeltessem a szám valódi nagyságát.
A világegyetem korát kb. 13,6 milliárd évre teszik.
Ez másodpercben: 2.573.337.600.000.000.000 ~2500 trillió másodperc. 19 számjegyű szám.

Kalappal! :D

random(0.99) = 1? Aki nem ír teló számot vagy nem tudom 8 óránál hosszabb ideig elérni, azzal az üzletet semmisnek tekintem.

(#9) Pörp válasza No-kia (#4) üzenetére


Pörp
(senior tag)

Na :)

320 x 240 x 3 = 230.400 byte
16.581.375 lehetséges szín
320x240=76.800 képpont

16.581.375^76.800 x 230.400 byte tárhelyszükséglet.

Egy picit soknak tűnik ez is. :) Felajánlom a 640GB-os WD-met, ha szereztek még hozzá pár 100millió 2Tb-os HDD-t, és raid-be kötjük. :)

pIIrash: most akkor jól számoltam? :)

[ Szerkesztve ]

(#10) pIIrash válasza Pörp (#9) üzenetére


pIIrash
(tag)

Jól. :)

Nekem van egy 10 MB-os pendriveom. Azt be tudom dobni a közösbe.

random(0.99) = 1? Aki nem ír teló számot vagy nem tudom 8 óránál hosszabb ideig elérni, azzal az üzletet semmisnek tekintem.

További hozzászólások megtekintése...
Copyright © 2000-2019 PROHARDVER Informatikai Kft.