Jako że wielu bywalców forum narzeka na brak tematów zaczynam nowy.
A mianowicie: czy zdażyło wam się kiedyś, że wpadliście na jakiś genialny pomysł, a po jakimś czasie okazuje się że nieświadomie zerżneliście z Lema? Mnie coś takigo nawiedzało parokrotnie. Później okazywało się , że albo pomysł był do bani, albo to zupełny plagiat. Jako przykładem posłużę się tym linkiem:
http://groups.google.pl/groups?hl=pl&lr=lang_pl&threadm=cbc9298a.0312190847.6b18c520%40posting.google.com&rnum=1&prev=/groups%3Fq%3Dqrld%26hl%3Dpl%26lr%3Dlang_pl%26as_qdr%3Dall%26selm%3Dcbc9298a.0312190847.6b18c520%2540posting.google.com%26rnum%3D1Niestety coś się skopało z kodowaniem , ale mam ciągle orginał więc przytoczę:
Wpadłem niedawno na pomysł kompresji dowolnych ciągów informacji do paru bajtów. Oczywiście zaraz paru sobie pomyśli, że jestem jakimś wynalazcą informacyjnego perpetuum mobile. Otóż nie, tamto założenie o kompresjii dowolnych ciągów inf. jest czysto teoretyczne (ale praktycznie wydaje mi się też mogłoby oddać pewne usługi).
Do tej kompresji potrzebny jest jakiś generator nieskończonych liczb pozornie losowych. Np. liczba Pi, albo V2 (pierwiastek z dwóch). Chodzi o to, aby owa liczba nie była nieskończona okresowo,czyli żeby nie powtarzał się w niej jakiś ciąg cyfr. Przykładem takiej liczby (nieskończonej okresowo)może być 3,52525252525252 ... co zapisujemy 3,(52) . Konieczne jest żeby kolejne cyfry tej liczby występowały po sobie pozornie (bo za każdym generowaniem liczba Pi jest ta sama) losowo. O ile mi wiadomo (jestem uczniem III kl. gimnazjum) w liczbie Pi nie zauważono żadnych prawidłowości w kolejnych cyfrach. To też jest w tym moim systemie kompresji bardzo ważne.
Zgodnie z teorią wielkich liczb (jest chyba taka? czytałem chyba o niej u Lema) jeśli mamy nieskończonej długości ciąg losowo po sobie występujących cyfr to znajdą się w niej WSZYSTKIE możliwe ciągi, a więc również wszystkie kiedykolwiek zapisane dzieła (np. Pan Tadeusz) w jakimkolwiek języku kodowania (np. ASCII). To stwierdzenie jest podstawą tego mojego systemu. A więc potrzebny jest program generujący np. liczbę Pi, który będzie na bierząco ją porównywał do kompresowanej informacji. Gdy znajdzie ciąg odpowiadający kompresowanej informacji zapisuje od której liczby po przecinku on się zaczyna, ile ma cyfr i w jakim systemie jest zakodowana.Dekompresja odbywa się analogicznie: komputer generuje ciąg liczby Pi do zapisanego miejsca po przecinku + ilości cyfr skompresowanego ciągu, "wycina" z niego odpowiedni ciąg.
Oczywiście aby skompresować bezpośrednio tym sposobem 1MB danych, trzeba by (chyba) ogromnej mocy obliczeniowej i czasu. Jednak można się posłużyć paroma ulepszeniami:
- kompresować nie cały plik, tylko jego fragment;
- stosować różne systemy kodowania dla fragmentów kompresowanego pliku lub komplikować istniejące ;
- zamiast wyliczać Pi do skutku, wyliczyć do milionowej cyfry po przecinku i szukać w niej danego kompresowanego ciągu, a jeśli się nie znajdzie komlikować system kodowanie, albo udziwniać ciąg jakimś programem aż w końcu znajdzie ;
- zastosować poprzedni system, tyle że zapisać tamten milionowy ciąg cyfr na dysku holograficznym (dzięki temu prawie nie trzeba by było czekać na wynik wyszukiwania, bo naświetlając dysk holograficzny ciągiem cyfr, które sprawdzamy czy znajdują się w tym przykładowym milionie cyfr, od razu otrzymujemy odpowiedź. Prototypowe dyski holograficzne nie muszą cyfra po cyfrze sprawdzać tylko , gdy naświetla się je szukaną informacją i gdy taka informacja znajduje się na dysku wiązka światła niosąca tą informację odbija się od odpowiedniego fragmentu bryły holograficznej. Nie wiem czy zasadę działania tego systemu wyszukiwania zrozumiale przedstawiłem, przeczytałem o tym dysku holograficznym w Młodym Techniku.).
A więc tym systemem kompresji można teoretycznie kompresować dowolne ciągi do paru(nastu:) ) cyfr. Można też sformułować parę praw:
- im większa moc obliczeniowa tym szybciej można skompresować daną informację,
- im dłuższy proces kompresji tym dłuższe ciągi można skompresować,
- im ciąg krótszy tym szybciej lub używając mniejszej mocy obliczeniowej można go skompresować,
- im czas dłuższy i większa moc obliczeniowa tym większy ciąg można skompresować.
Chciałbym się dowiedzieć co o tym sądzicie. Czy taki system jest w ogule realny? Czy jego praktyczne zastosowanie jest możliwe? Czekam na Wasze odpowiedzi.
mój komentarz:
Sama idea jest do kitu co później zrozumiałem, ale sam pomysł był zaczerpnięty z
Cyberiady, a mianowicie z fragmentu o Doradcy doskonałym. Była tam mowa o tym, że dowolny ciąg znaków można "rozkodować" tak, aż będzie miał w sobie jakąś treść. Ja poszedłem tą właśnie drogą. Dopiero później stało się dla mnie jasne, że to od Lema.
A swoją drogą, to wspaniałe uczucie, gdy wymyśli się coś takiego. Myślałem, że to "odkrycie" może naprawdę zmienić świat. Człowiek czuje się wtedy niesamowicie.
pzdr