Odkąd nie działa stare forum wielu ludzi rozwiązało ten problem (w tym ja) i jakoś nie narzekali. Jak im (i mi) się udało to zrobić? Otóż nie robili durnych i nadmiarowych założeń, które Ty robisz nieustannie. Przykłady? Pokolei:
Czy ktoś Ci powiedział (zagwarantował), że takiego AI nie ma? Jeżeli nie to dlaczego przyjąłeś, że go nie ma i się dziwisz, że program jakoś reaguje (dokładnie: że sędzia może być interaktywny)?
Udowodniłeś jakoś niemożność skrócenia obliczeń? Czy ponownie tylko tak przyjąłeś bo tak Ci się wydaje?
Z dawnych rzeczy:
Ale dlaczego? Wszystkie gry mają nieskończoną pętlę na przykład (jest tam while(true)). Dlaczego w ogóle wpadłeś na pomysł przekonania samego siebie, że to jest durne?
Również tego nie dowiodłes. Po prostu Ty nie znałeś innego wyjścia i założyłeś ponownie, że go po prostu nie ma. Pewnie jakbyś całe życie pracował w kopalni pod ziemią to nie wierzyłbyś w istnienie słońca bo go sobie nie wyobrażasz.
Już Ci dawno temu odpowiedziałem i zrozumiałeś, że w tym jest sens, ale dlaczego postawiłeś na początku tezę, że jest to kompletnie bez sensu? Gdybyś jej nie postawił nie miałbyś tylu pytań. Jeżeli jest jakaś funkcja języka programowania (nawet słynne z C++ goto
lub właśnie taka dziwna pętla) to prawdopodobnie ma to jakiś sens bo mądrzejsi od Ciebie (i ode mnie) tworzą języki programowania. Więc powiedz jakim cudem można ich tak obrażać pisząc, że coś co zrobili jest bez sensu? Jak można nie czuć tej różnicy lat doświadczenia?
Piszę to wszystko bo się nazbierało i nie po to by Cię ochrzanić, poniżyć czy cokolwiek tylko byś zauważył prostą rzecz: że jeżeli nie będziesz robił (niesprawdzonych uprzednio) założeń, a zawsze dasz możliwość wystąpienia czegoś o czym nie wiedziałeś to rozwiążesz niezłą gamę zadań łatwiej, szybciej i bez wzbudzania wątpliwej jakości dyskusji na forum (niekoniecznie z Twojej strony, ale z Twojej przyczyny).
Gdy teraz znajdziesz zadanie na spoju, które na przykład bierze pod uwagę Twoje rozwiązanie z innego zadania to znów tu napiszesz “przecież nie ma takiej możliwości żeby zadania się łączyły! Co to jest? Jak niby ma to działać? To niemożliwe. Znowu jakieś durne zadanie” czy też pomyślisz w ten sposób (tak jak ja to często robię gdy napotkam coś nowego) jak: “o… nie wiedziałem, że kody mogą się łączyć… ciekawe jak to rozwiązać?”.
Nie mówię, że takie zadanie jest (zapewne takiego nie ma), ale gdyby było… mógłbyś przestać robić założenia, które Cię ograniczają? Zamykasz się w swoich jedynie pomysłach i nie możesz wpaść na to jak coś działa bo przeczy Twoim przekonaniom, temu w co wierzysz. A to nauka przecież, a nie wiara.
Inny przykład… co zrobisz jak znajdziesz w końcu zadanie takie jak chciałby tu wstawić @tarpauwatratar (pisane z pamięci… jeszcze to potrafię
) czyli zadanie typu:
“sprawdź czy liczba z zakresu 1 < n < 10^100 taka jak 12567235678654567876432345676434567643245676543234561 jest liczbą pierwszą i wykonaj to w czasie O(1)”
bo ja zacząłem rozkminiać “ciekawe czy się da? no raczej tak zwyczajnie sitem to nie. A może w zadaniu chodzi o coś innego, o jakiś szyfr albo wystarczy sprawdzić czy jest parzysta, sumę cyfr czy się dzieli przez trzy, a potem… no właśnie co? Ciekawe zadanie.”
bo przewiduję, że zrobisz wtedy wielką burdę w stylu:
“No nie ma takiej możliwości by sprawdzić pierwszość liczby w czasie O(1) gdyby była taka możliwość to matematycy by ją chyba znali nie? A jakoś do dzisiaj szuka się sensownego wzoru na liczby pierwsze i żaden z dotychczas odkrytych nie ma złożoności poniżej O(n^3)…”
Łapiesz intrygę? Chcę Ci pomóc: przestań. Proszę przestań robić te swoje założenia i się przy nich upierać (i w życiu i w małżeństwie i w programowaniu).