taśma9
Użytkownicy-
Liczba zawartości
19 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Zawartość dodana przez taśma9
-
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Na razie program jest w przygotowaniu, rozwinięcie poprzedniego, nie sądziłem że z javy można tyle wyciągnąć. Teraz zrobiłem że sito jest robione kawałkami dzięki temu zajmuje niewiele pamięci i działa szybciej, z tego też względu nie jestem w stanie powiedzieć ile jest pierwszych w zakresie 1 ... 10**12 ale gdy sprawdzam segmentami to ilość się zgadza. Jak ogarnę podział segmentów do końca to zrobię sumowanie i wtedy będzie wiadomo. Już nie pamiętasz . Właśnie ja mam takie tempo wracam po pół roku, po roku do tematu gdy mam już przemyślane nowe pomysły i tak w ślimaczym tempie sobie pisze -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
0 ... 100 000 000 020 time: 52.441000000003456 nowa wersja w przygotowaniu w trybie jednowątkowym jest 52.441000000003456 vs primesievie 17.65 czas może ulec zmianie na gorsze .. ale też na lepsze 10**12 wychodzi około 12 minut wszystko podane w trybie jednowątkowym, a algorytm przygotowany jest już pod wielowątkowość wychodzi że w primesieve jest około 3 razy szybsze od algorytmu w javie ciekawe czy uda mi się wycisnąć coś więcej -
Ludzki mózg czy komputer-co jest lepsze?
taśma9 odpowiedział NieograniczonaSI na temat w dziale Filozofia
Ja bym obstawiał, że najpierw będzie tak jak masz z kalkulatorem. Włączasz wtedy gdy potrzebujesz. rahl, zarejestrowałem Twoje literówki, były naumyślne, czy niechcący ? -
Fajny kotek.
-
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Mnie osobiście jakoś to Sito Małgorzaty nie przekonuje. Brak jakichkolwiek materiałów w wójku google. Może przy bardzo dużych liczbach pozwala skoncentrować się tylko na tych które są pierwsze ? jeśli tak jest, to fajnie, tylko że robiąc sito, które wylewa się na dysk, osiągnę dużo większą wydajność kosztem pamięci dyskowej. -
Jesteś wybitną jednostką, miałem kilku kolegów z C64, sam też miałem, zabawy raczej kończyły się na zrobieniu jakichś niezbyt skomplikowanych demek, lub gierek, albo procedur. Nigdy nie zapomnę jak kolega nie umiał włączyć drugiej, trzeciej, i kolejnej muzyczki, gdzie wystarczyło do akumulatora wstawić numer muzyczki, przed skokiem do playera
-
Ludzki mózg czy komputer-co jest lepsze?
taśma9 odpowiedział NieograniczonaSI na temat w dziale Filozofia
Tu się zgadzam. Najlepsza by była fuzja najlepszych funkcji mózgu ludzkiego i cech komputera. Nie potrafimy na komputerze zasymulować wybitnego kreatywnego umysłu, jeśli tak się kiedyś stanie, człowiek może przestać być potrzebny. -
Za najlepszych czasów stawiałem LFSa - Linux From Scratch, cały tydzień kompilacji programów, ale po jakimś czasie przemyślałem temat i stwierdziłem że przecież mogłem sobie w coś pograć w tym czasie, albo posurfować po internetach Za czasów C64 czy Amigi nie dotykało się praktycznie systemu, a ile było fajnych gier i programów
-
Użytkuje Ubuntu bodajże od 2008r , jedno co mogę powiedzieć, to że aktualizacja to zły pomysł, zawsze lepiej postawić od nowa. Na 2 próby, 2 nieudane, teraz zastanawiałem się czy zaryzykować przy 17.04, ale wole mieć spokój i czas i energię poświęcić na ciekawsze rzeczy, i 17.10 stawiałem czyściocha jak zwykle. Powiem tak, zapomniałem co to problemy z systemem operacyjnym, zamiast grzebać w nim, po prostu go użytkuję, czego wszystkim życzę
-
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Patrzę na tą tabelkę i chyba wiem o czym mówisz. Najprostsze rozwiązanie które widzę to robić sito za każdym razem jak znalazłeś nową LP: np znalazłeś 2, robisz sito modulo 2, czyli binarne, znalazłeś 3, robisz sito modulo 6, znalazłeś 5, robisz sito modulo 30, znalazłeś 7, robisz modulo 210 ... itd do nieskończoności, tylko że szybko zabraknie pamięci w komputerze, bo okaże się że przy 10 LP musisz zrobić sito modulo 6,469,693,230 które jeśli będziesz przechowywać w bitach zajmie ponad 770MB co jeszcze jest do ogarnięcia, ale przy 11 LP czyli "31" modulo dojdzie do wartości 200,560,490,130 a to już trzymane nawet w formie bitów zajmie przeszło 23GB. Duży przeskok, ale następny to ponad 860GB, a następny to już ponad 34,5 TB, pod warunkiem że każda liczba to 1 bit. Minusy są takie że: albo musisz trzymać wtedy bit do każdej liczby, bo jeżeli stworzysz sito dynamicznie to będzie to najprostszy sposób na wyliczenie jaka to liczba, albo musisz zapamiętywać LP, możesz to robić na zasadzie że poprzednie sito modulo tworzy nowe sito modulo, albo zapamiętywać LP w formie int lub long RAM zawsze będzie się zapełniał w nieskończoność, jeśli będziesz liczył nieskończony zakres Patrzę na arkusz i tak myślę, gdybyś wiedział jak ominąć ten problem, to byłby to wzór na liczby pierwsze -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Mam wrażenie że będę musiał przestudiować jeszcze raz cały topik i przemyśleć temat Tablica jest dobra dla mniejszych zakresów, ale im dalej w las, tym ciemniej - mniej LP. Na tym moim programie można by było sprawdzić czy liczba jest pierwsza w zakresie od 1 do liczby z 4 z przodu i następnie 21 zerami, co już trochę wykracza poza 64bity, co mam zresztą w planach Jeszcze muszę dopisać część zliczającą LP do Long.MAX_VALUE, i tutaj z czasami już może nie być tak wesoło. Wzór na liczby pierwsze to musiało by być coś co adaptuje się do zmieniających się warunków, po co sprawdzać 80 tysięcy liczb w których nie ma LP ? albo zajmować tym pamięć. Na dzisiaj mi starczy -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Moja tabelka tak wyglądała, gdy robiłem na sicie Eratostenesa, to było na początek tak dla uproszczenia, łatwiej było znaleźć reguły, które potem ładnie przeniosły się na sito modulo 30. Mój program działa na całej tablicy. Matcher, ten program który teraz dodałeś w jaki sposób oblicza liczby pierwsze ? Zakładam że nie dodaje liczb 2,3,5 i 7 do wyniku. -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
W mojej tabelce jest stała reguła do wykreślania liczb które nie są liczbami pierwszymi, np znajdujesz indeks [0,1] który ma wartość "0" (czyli 3) to znaczy że to liczba pierwsza, teraz tak, indeks [3,1] zaznaczasz jako "1" ( czyli 33 ), indeks [6,1] zaznaczasz jako "1" ( czyli 63 ): 1 | 3 | 7 | 9 11 | 13 | 17 | 19 21 | 23 | 27 | 29 31 | 33 | 37 | 39 41 | 43 | 47 | 49 51 | 53 | 57 | 59 61 | 63 | 67 | 69 czyli znalazłeś na indeksie 0 liczbę 3, i teraz w pionie w tym słupku dodajesz do indeksu tą liczbę ( 3 ) i skreślasz, i tak do końca zadeklarowanej tabelki, 3, 33, 63, 93, 123, 153, indeks cały czas zwiększasz o 3. Dla innych kolumn zmienia się tylko punkt startowy, dla zerowej kolumny to indeks "2", dla trzeciej kolumny to indeks "27", czyli pierwsza liczba która dzieli się przez "3" w danej kolumnie. Dla 7 indeks będziesz się zwiększał o 7, dla 11 o 11. p.s. tylko koniec końców wyszło że liczb pierwszych o 1 do 30 jest Osiem, więc pierwsze skojarzenie to bajt i 8 bitów, wierzę pan od primesievie wpadł na coś bardzo podobnego. p.p.s a nawet nie osiem liczb pierwszych, tylko przy modulo 30 jest osiem słupków w których mogą być liczby pierwsze. p.p.p.s ERRATA: dla drugiej kolumny to indeks "2" czyli liczba "27", a dla trzeciej kolumny to indeks "0". sorki, taki mały świerszczyk 4p.s. Nie odpowiedziałem na pytanie, liczba pierwsza w sicie będzie miała wartość "0" bo nie została skreślona przez żadną poprzednią liczbę. -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Jajcenty, maszyna wirtualna mi się przyda żeby sprawdzić jak instalować i uruchamiać programy pisane w Javie, żebym wiedział jak u znajomych którzy mają tylko Windowsy sprawdzić swój program, ale jakiś skrypt. Czysta potrzeba wiedzy Z "C" dałem sobie spokój, dla mnie za trudne. To co robiłem w "C" w kilka miesięcy w Pythonie zrobiłem w tydzień. dotnet ? hmm, tego nie znam Mam Javę a Eclipse to mój ulubiony IDE I wygląda że tak już zostanie. A dlatego Wine, ponieważ chciałem jakoś zrobić test, a innej możliwości pod Ubuntu nie znam, chyba że Dosbox p.s. Mój programik powstawał dosyć długo, koniec końców to jakaś odmiana sita Atkina, ale najpierw było to sito Eratostenesa operujące na kolumnach liczb z końcówką 1,3,7,9, zresztą jeszcze mam kod na pamiątkę Ale to właśnie na Eratostenesie zauważyłem że można odznaczać w każdej kolumnie liczbę że nie jest pierwszą bo jest pochodną, a następna pochodna np liczby 3, to 33, czyli indeks 0 + 3 = 3, czyli 3 * 10 + 3, wystarczyło obliczyć punkt początkowy, i dalej to już zwykła pętla dla każdej z czterech kolumn. Nie było łatwo p.p.s. Matcher, to znaczy że robisz wszystko w ascii ? -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
takie mam wyniki bez OC: 78,499 pierwsza to 1000003, czas: 14s mój: 0.003s 148,934 pierwsza to 2000003, czas: 39s mój: 0.008s 216,818 pierwsza to 3000029, czas: 1m17s mój: 0.008s ale jest duże ALE, ponieważ nie mam Windowsów, test robiłem na wine-2.0.2 pod Ubuntu 17.10, tylko taki mam system. Od czasów możesz odjąć jakieś 5 sekund, przez które wpisywałem numer liczby pierwszej, a po zakończeniu działania programu wciskałem Enter. Przy dużych liczbach ( 100 milionów ) Wine nie dawało rady, wywalało się. Już od jakiegoś czasu w planach miałem maszynę wirtualną z darmowym XP, więc chyba po prostu przyspieszę wykonanie zadania, i przeprowadzę ponowne testy -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
zakres do 100 mld. jest dla mnie na razie nie osiągalnym musiałbym pomyśleć o robieniu tablicy int, long albo użyć dysku. Java pozwala mi na maksymalnie 64_410_000_030 tablicę bajtową, potem jest problem z adresowaniem. Wyniki dla i5 7600k 3.8 GHz: 64_410_000_030 128.697 s2,701,477,379 liczb pierwszych poprzedni się nie liczy , jeszcze raz: 64_410_000_030 128.697 s 2,701,477,379 pierwszych - maksymalna osiągalna wartość tablicy byte w technologii modulo 30 na bitach 50_000_000_010 97.805 s 2,119,654,578 pierwszych 10_000_000_020 17.035 s 455,052,512 pierwszych -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Dokładnie to jest to zakres od 7 do 1_000_000_020, znajduje w nim 50,847,534 pierwszych. Wielokrotności 2,3 i 5 są całkowicie pominięte w całym procesie. Edycje mam wyłączoną, chyba jeszcze nie zapracowałem na nią. W powyższym zakresie znajduje 50,847,536 liczb pierwszych. -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Skróty myślowe, zakres od 1 do 10^9 przegląda w niecałe 2 sekundy na procku i5, poprawiam. -
Liczby pierwsze nie są rozłożone losowo?
taśma9 odpowiedział KopalniaWiedzy.pl na temat w dziale Ciekawostki
Witam, dyskusja zamarła, ale obserwowałem ją i była moim napędem do pisania programu. Nie wiem czy wyjdzie szybciej, ale mi się skończyły pomysły na przyspieszanie. Wrzuciłem projekt (w javie) na githuba: https://github.com/marioc8/primeSentinel30. Udało mi się osiągnąć 10^9 w niecałe 2 sekundy. Jednowątkowo.Wielowątkowo nie umiem, javy uczę się trochę ponad rok. Nie starałem się wymyślić wzoru, ale i tak trochę czasu mi zajął nawet w takiej formie. Jest jeszcze wiele bugów do ogarnięcia, ale ogólnie z eclipse program chodzi bez problemu, i można robić benchmarki.