Jestem początkujący jeśli chodzi o programowanie w pythonie. Napisałem program do szukania liczb pierwszych. Potem napisałem drugi, który wyznaczał "spiralę" w której każdy kolejny punkt był przesunięty o 1 (w górę/dół/prawo/lewo) od poprzedniego. Jeśli id punktu znajdowało się na liście liczb pierwszych wygenerowanych przez pierwszy program to taki punkt był zapisywany do osobnej listy i na podstawie tej listy wygenerowałem wykres.
Na obrazku efekt dla 2063 pierwszych liczb pierwszych (nie korzystałem z żadnej pomocy).
Zainteresowanych odsyłam do artykułu na wiki który mnie zainspirował do napisania mojego tworu - Spirala Ulama
@mk321: Na studiach miałem trochę VBA więc nie musiałem się aż tak bardzo przyzwyczajać do składni. Ogólnie jest nie najgorzej.
Algorytmy napisałem dwa. Pierwszy (wolniejszy) opierał się na stworzeniu listy reszt z dzielenia przez kolejne dzielniki. Jeżeli w tej liście znajdowało się 0 to nie była zapisywana do listy, ponieważ miała inny dzielnik. W drugim usprawniłem to o tyle, że nie korzystam z listy do zapisu wyniku, bo "w locie" sprawdza
Na obrazku efekt dla 2063 pierwszych liczb pierwszych
@SebX: a jeśli ustawisz większy zakres? Np. coś w okolicach 5000, 10000 albo w ogóle 10x lub 100x większe? Interesujące to jest z dwóch powodów:
1. Jak będzie wyglądał obrazek ( ͡°͜ʖ͡°) Na tym małym wygląda jakby była jakaś regularność. Np. widać linie w górę i w dół. Być może regularność się utrzyma i dzięki temu odkryjesz
@SebX: Ostatnio widziałem jakiś filmik na kanale Numberophile/Computerphile z identycznym zagadnieniem. Polecam oba te kanały. Odkryłem je jakiś czas temu i zainteresowałem się programowaniem. Jeśli szukasz inspiracji do napisania jeszcze czegoś to te kanały na pewno ci się przydadzą. Mi spodobało się conway's game of life. Łatwe do napisania i efekt całkiem fajny jak to wszystko się rusza ( ͡°͜ʖ͡°)
@mk321: 1. W Wiki o Spirali Ulama (link w pierwszym poście) jest co nieco o tym fenomenie. (dla 100000 kroków obrazek w załączniku) 2. Wyszukanie liczb pierwszych w przedziale do 100 000 zajmuje mojemu programowi około 1:44 minuty, mój program zamiast wykreślać jak w sicie iteruje przez kolejne punkty 2a. Skopiowałem algorytm sita Eratostenesa ze stackoverflow i wyszło 2:40 (pewnie jakby pogrzebać znalazłoby się coś szybszego) 2b Podobnie z Atkinem, ale
Rzeczywiście w artykule na Wiki jest trochę wspomniane. Na końcu nawet jest link do aplikacji online, gdzie można sobie obejrzeć wynik dla 3,5 miliona (https://www.alpertron.com.ar/ULAM.HTM -> Zoom out) - tylko że to pewnie wcześniej wygenerowane tylko wczytywane.
1:44 to jest co optymalizować. Troszkę zaskoczenie, że zwykłe sito Eratostenesa było wolniejsze. Chociaż pewnie w twoim przypadku własnoręcznie napisany kod był szybszy (bo tak to
Na obrazku efekt dla 2063 pierwszych liczb pierwszych (nie korzystałem z żadnej pomocy).
Zainteresowanych odsyłam do artykułu na wiki który mnie zainspirował do napisania mojego tworu - Spirala Ulama
#programista500+ #python #jestemzsiebiedumny #programowanie #atencyjnyniebieskipasek #matematyka
A tak to gratulacje. Fajny wykres. Chyba przyjemnie się takie rzeczy robi w Pythonie?
Jakiego algorytmu użyłeś do szukania liczb pierwszych? Spróbuj wygenerować więcej liczb i spróbuj użyć jakiegoś szybszego.
Algorytmy napisałem dwa. Pierwszy (wolniejszy) opierał się na stworzeniu listy reszt z dzielenia przez kolejne dzielniki. Jeżeli w tej liście znajdowało się 0 to nie była zapisywana do listy, ponieważ miała inny dzielnik. W drugim usprawniłem to o tyle, że nie korzystam z listy do zapisu wyniku, bo "w locie" sprawdza
@SebX: a jeśli ustawisz większy zakres? Np. coś w okolicach 5000, 10000 albo w ogóle 10x lub 100x większe? Interesujące to jest z dwóch powodów:
1. Jak będzie wyglądał obrazek ( ͡° ͜ʖ ͡°) Na tym małym wygląda jakby była jakaś regularność. Np. widać linie w górę i w dół. Być może regularność się utrzyma i dzięki temu odkryjesz
Mi spodobało się conway's game of life. Łatwe do napisania i efekt całkiem fajny jak to wszystko się rusza ( ͡° ͜ʖ ͡°)
1. W Wiki o Spirali Ulama (link w pierwszym poście) jest co nieco o tym fenomenie. (dla 100000 kroków obrazek w załączniku)
2. Wyszukanie liczb pierwszych w przedziale do 100 000 zajmuje mojemu programowi około 1:44 minuty, mój program zamiast wykreślać jak w sicie iteruje przez kolejne punkty
2a. Skopiowałem algorytm sita Eratostenesa ze stackoverflow i wyszło 2:40 (pewnie jakby pogrzebać znalazłoby się coś szybszego)
2b Podobnie z Atkinem, ale
Rzeczywiście w artykule na Wiki jest trochę wspomniane. Na końcu nawet jest link do aplikacji online, gdzie można sobie obejrzeć wynik dla 3,5 miliona (https://www.alpertron.com.ar/ULAM.HTM -> Zoom out) - tylko że to pewnie wcześniej wygenerowane tylko wczytywane.
1:44 to jest co optymalizować.
Troszkę zaskoczenie, że zwykłe sito Eratostenesa było wolniejsze. Chociaż pewnie w twoim przypadku własnoręcznie napisany kod był szybszy (bo tak to