szukanie zaawansowane
 [ Posty: 28 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
Mężczyzna
PostNapisane: 3 lip 2019, o 17:38 
Użytkownik

Posty: 31
Lokalizacja: Łódź
Cześć. Ja mam kolejną hipotezę, którą staram się udowodnić i zapraszam również innych do sprawdzenia czy to prawda czy fałsz.

Otóż zrobiłem rozkład liczb pierwszych na spirali Fibonacciego (założyłem tu wątek poświęcony temu zagadnieniu, ale nikt się nie udziela).
Z tego rozkładu wynika następująca dość nietrywialna sprawa, o której nie wiedziałem.

Slp = \frac12 \Phi \\
 Slp = \frac{\frac{lp_1 +lp_2 +... + lp_n}{ Ilp}}{ Wlf}

Przy założeniu, że :

Mlf <Lp_n \le Wlf, gdzie

Lp - liczba pierwsza

Slp - suma liczb pierwszych

Mlf - mniejsza liczba fibo

Wlf - wieksza liczba fibo

Ilp - ilośc liczb pierwszych w przedziale

\Phi - złota liczba 1,618...

- Postarałem się to zapisać te wzory w Latexie...
Jeśli to poniżej jest dzięki temu bardziej zrozumiałe to może wróćmy do tematu i zacznijmy od tego, czy ktoś wie jak rozkładają się Liczby pierwsze w przedziałach wyznaczonych liczbami Fibonacciego?

Slp = \frac{\frac{lp_1 +lp_2 +... + lp_n}{ Ilp}}{ Wlf}

Przekładając na polski język.
Każdy podzbiór liczb pierwszych, dla liczb > 5, rozdzielony wartościami liczb ciągu Fibonacciego ma związek ze Złotą Liczbą \Phi.
Suma liczb pierwszych w danym podzbiorze podzielona przez ilość liczb pierwszych i następnie podzielona przez liczbę Fibonacciego (zamykającą podzbiór) da przybliżenie \frac12  \cdot  1,618...

P.S. Nie jestem matematykiem i poprawiłem jedynie wzory obejmując je znacznikami [Tex] jeśli to nie wystarczy to już nie wiem co zrobić lepiej. Prosiłbym tylko o wyrozumiałość.
Uniwersytet Wrocławski Instytut Matematyczny - rekrutacja 2019
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 18:15 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
Niezbytnio
Napisałem maluśki programik
wyniki suma liczb pierwszych z przedziału dzielona przez ilość liczb pierwszych dzielone przez górną granicę przedziału są takie
Ukryta treść:    


-- 3 lip 2019, o 18:28 --

Wbrew pozorom dąży to do 0,5

-- 3 lip 2019, o 18:29 --

albo coś około ;-)
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 19:20 
Użytkownik

Posty: 31
Lokalizacja: Łódź
Fajna próba kolego @Brombal.

Nie wiem jaki szybki masz komputer ale skoro doliczyłeś do 44 wyrazu ciągu Fibonacciego to musi byś potężny procek w środku.
Podam Ci niżej fragment mojej kalkulacji - wynik z kosoli okna programu, które też jest programikiem napisanym w czystm C.
Otóż obliczyć każdą sumę liczb pierwszych w zadanym podzbiorze to zajmuje całe godziny dla wartości powyżej 30 wyrazu Ciągu Fibonacciego.
Ponadto nie jestem pewien, czy użyłeś odpowiedniego typu zmiennych w aplikacji, aby nie zaokraglać niepotrzebnie wartości niewymiernych.

Zobacz wynik działania mojego programiku, ustawiłem tylko żeby kalkulowało sumę liczb pierwszych i średnią, a nie listowało wszystkich liczb pierwszych w zbiorze.


Ukryta treść:    



Doliczenie wszystkiego do wartości 514229 która jest 29 wyrazem ciągu F zajmuje mojemu komputerowi prawie godzinę. Jeśli chcesz to mogę Ci wrzucić kod źródłowy i sam obejrzysz.
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 19:59 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
Niezbyt rozumiem
Obliczenia trwały ok. 34 s
Procek to zwykły i5 w laptopie
Program napisałem w Javie
pierwsza klasa
Ukryta treść:    

druga klasa to mój program do generowania pierwszych
Ukryta treść:    

ok 15 s z całej operacji to obliczenie wyrazów Fibonacciego reszta to sumowanie ok. 15 s a wygenerowanie tablicy booleanowej liczb pierwszych do fib(44) ok. 1,5 s

-- 3 lip 2019, o 20:27 --

Znalazłem błąd w programie ;-)
Ukryta treść:    


Wyniki są nieco inne
Ukryta treść:    
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 20:37 
Użytkownik

Posty: 31
Lokalizacja: Łódź
Nie znam dobrze Javy, ale składnia podobna do C.

W załączonym kodzie trudno mi się połapać, bo sporo też zmiennych.

Wydaje mi się, że bierzesz w funkcji main zbyt mały zakres liczb naturalnych.

Pętla

Kod:
1
for (int i = 6; i <= 43; i++) { ... }


... to jakby wyznacznik zakresu twojego programu. Dlatego tak szybko się kończy... ;)

Zobacz to co mam napisane w C i sobie porównaj. Program bierze dwa argumenty przy uruchomieniu, które są zakresem liczbowym, w którym operuje. Znajduje liczby Fibonacciego i Pierwsze i sumuje Pierwsze i wyciąga z nich .... Złotą Liczbę.


Ukryta treść:    


Czas działania aplikacji może być spory... zalecam nie wpisywać na początku wartości większych od 500000.

Przykład kolejnych danych z programu, który sobie działał w tle przez jakieś 1.5 godziny:

Cytuj:
514229 is a Fibonacci and a Prime Number, let's start to calculate next primes subset
23704 Quantity of Primes in last subset
3052170812 Sum of Primes in last subset
672336.000000 Average value in last subset of Primes
0.808057 Approximation to the half of Golden number Phi/2 is result of Average number of Primes / Fibonacci number
1.616115 Approximation to the Golden number Phi
832040 is a Fibonacci Number, let's start to calculate next primes subset
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 21:45 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
Kod:
1
for (int i = 6; i <= 43; i++) { ... }

To zakres kolejnych wyrazów ciągu Fibonacciego
Mam wrażenie, że masz zwyczajnie siłowy sposób generowania liczb pierwszych i w tym jest problem. Wygeneruj liczby pierwsze jako tablice booleanową do wartości fib(44) (np. zwyczajnym Eratostenesem dla C jest tego kupa Zajmie to jakieś 20 s dla tej metody).
Następnie leć po tablicy booleanowej od fib(n) do fib( n+1) sumując adresy true i ilość true. myślę, że działanie do fib(44) nie zajmie Ci więcej niż minutę w C.
Poniżej więcej wyników
Ukryta treść:    
Góra
Mężczyzna
PostNapisane: 3 lip 2019, o 22:19 
Użytkownik

Posty: 31
Lokalizacja: Łódź
Brombal to jest zaskakujące dla mnie.
Skoro tak szybko działa to u Ciebie to świetnie. Widać prawidłowość, której się spodziewałem.
Potwierdzasz, że szukana wartość wedle założenia dąży do \frac12 \cdot 1,618... ?
Oczywiście, że masz rację iż moja procedura znajdywania liczb pierwszych nie jest optymalna, ale nie spodziwałem się, że aż tak źle z nią jest.
Przeanalizuje twój generator liczb pierwszych i może czegoś się z niego nauczę.
Dzięki za dyskusję, ale muszę kończyć.

-- 5 lip 2019, o 12:43 --

@Brombal twoje rady są bezcenee.
Zrobiłem jak sugerowałeś. Zastosowałem sito Erastotenesa, bo twojego algorytmu MMSieve jeszcze nie rozgryzłem.
Czas obliczenia znacznie, ale to znacznie się skrócił.

Zobacz moje wyniki:

Ukryta treść:    


Jest jeden podzbiór liczb pierwszych więcej obliczony, czyli do Fib(44), w czasie 46 sekund, a nie kilku godzin jak poprzednio do rzędu mniejszych wartości. Uwaga! Wyniki mogą się różnić dla zbiorów gdzie granicą jest Licza Fibo, która też jest liczbą pierwszą.

Jednak powyżej 44 argumentu ciągu Fibonacciego zaczynają się już schody.
Problem wynika najprawdopodobniej z alokacji pamięci przez program dla danego przedziału liczb pierwszych pomiędzy wyższymi niż 44 -ty wyrazami ciągu Fibo.

Myślę, że delikatna optymalizacja jeszcze jest możliwa, aby alokować pamięć dla tablicy liczb pierwszych sekwencyjnie, czy tez dynamicznie.
Dla przykładu tablica liczb pierwszych pomiędzy Fib(46) : 1836311903 a Fib(47): 2971215073 to jest Fib(45), co daje 1134903170 x ilośc bajtów dla typu zmiennej integer. Wykorzystuje typ long więc w tym przypadku to 8 bajtów. To daje potrzebę alokacji pamięci dla tablicy o wielkości 9079225360 bajtów, a to jest 9 GB, a ja mam w komputerze tylko 8GB.
Więc twoje sugerowane rozwiązanie ze zrobieniem tablicy (bool-true) może jest lepsze, ale też ma ograniczenia i na moim kompie nie pójdziemy z obliczeniami dalej.
Tak więc jeśli rozumiesz, a pewnie tak jest, to proszę o przybliżenie jakiejś innej metody wyznaczania liczb pierwszych.
Nie wiem jak działa ten algorytm MMSieve, w twoim kodzie Java? To jest twój algorytm? Mógłbyś przybliżyć jego zasadę działania?
Będę wdzieczy chociaż za podpowiedź, jak alokuje on pamięć i czy wogóle robi w sposób podobny do Sita Erasto tworząc tablicę z liczbami. Pozdrawiam.
Góra
Mężczyzna
PostNapisane: 5 lip 2019, o 13:18 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
Ograniczeniem jest tablica booleanowa może posiadać jedynie tyle pól co max int stąd ograniczenie. Mam pewien algorytm w javie, który wygenerowuje nieco większe liczby pierwsze nieco wolniej ograniczeniem jest pojemność dysku twardego 1TB liczb pierwszych (2 exp13) musiałem generować 6h.
Odnośnie Twojej hipotezy sądzę, że może wyglądać zupełnie inaczej.
dla k \ge 1,k \in \RR oraz n naturalnego
średnia arytmetyczna X zbioru liczb pierwszych z przedziału od \left\langle n, kn\right\rangle
\lim_{n \to \infty } \left( \frac{X}{nk} \right) \rightarrow \frac{k+1}{2k}
podstaw do swojego Fibonacciego ;-)

Spróbuj co da Ci taki kod.
Kod na wektorowe obliczanie w C++
Powinieneś łatwo przekonwertować.
Ukryta treść:    
Góra
Mężczyzna
PostNapisane: 5 lip 2019, o 13:58 
Użytkownik

Posty: 31
Lokalizacja: Łódź
@Brombal - dzięki za wsparcie. Jestem pozytywnie zaskoczony, w jakim kierunku poszła nasza dyskusja. Dałeś mi teraz orzech do zgryzienia. Muszę przemyśleć sprawę, ale najpierw ją zrozumieć. Czasem działam bez większego zastanowienia, dlatego teraz wezmę się po prostu za eksperyment i twój kod zacznę wdrażać do działania.
Efekty może mi coś rozświetlą i wtedy mam nadzieję bedę miał powód się do Ciebie odezwać.
Najciekawsze jest to, że przypomnienie sobie znaczenia matematycznych symboli sprawia mi ciut trudności... ale mam nadzieję, że dam radę. Ciekawa formuła... jednak jeszcze zbyt tajemnicza.
Tymczasem na razie kończę i pozdrawiam.
Góra
Mężczyzna
PostNapisane: 5 lip 2019, o 14:15 
Administrator

Posty: 24778
Lokalizacja: Wrocław
Brombal napisał(a):
średnia arytmetyczna X zbioru liczb pierwszych z przedziału od \left\langle n, kn\right\rangle
\lim_{n \to \infty } \left( \frac{X}{nk} \right) \rightarrow \frac{k+1}{2k}

No to nie wygląda dobrze. Pewnie chciałeś napisać

\lim_{n \to \infty } \left( \frac{X}{nk} \right) \red=\black \frac{k+1}{2k}.

JK
Góra
Mężczyzna
PostNapisane: 5 lip 2019, o 15:23 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
@JK Faktycznie tak chciałem napisać ;-). Ale mnie coś podkusiło....
@Sylvi91 Podstaw złoty podział pod k do wzoru \frac{k+1}{2k} i zobacz co wyjdzie ;-)
Góra
Mężczyzna
PostNapisane: 5 lip 2019, o 18:53 
Użytkownik

Posty: 31
Lokalizacja: Łódź
@Brombal Nie wiem czy Cię dobrze zrozumiałem.

Podstawienie wartości ciągu Fibonacciego do tego proponowanego przez Ciebie wzoru daje przybiżenie oscylujące wokół wartości 0.5.
Ale to nie jest żadna średnia liczb pierwszych zadanego zbioru, bo średnia atytmetyczna to z definicji suma tych liczb podzielona przez ich liczbę.
Czy to się odnosi jakoś do liczb pierwszych z zadanego przedziału tego mi nie wiadomo.
Nie wiem co miałeś dokładnie na myśli układając ten wzór. Gdyby pomożyć wynik przez Złotą liczbę to może było by to tożsame z tym co ja proponuję i formuły można by porównać.
No ale ja nie jestem w tej dziedzinie na tyle biegły, aby o liczbach pierwszych wiedzieć takie rzeczy.


Slp = \frac12 \Phi \\ Slp = \frac{\frac{lp_1 +lp_2 +... + lp_n}{ Ilp}}{ Wlf}

Pytam tylko, czy taka zależność w zbiorze liczb pierwszych była by prawdopodobna.
Slp = \frac12 \Phi = \lim_{n \to \infty } \left( \frac{X}{nk} \right) \Phi \red=\black \frac{k+1}{2k}  \Phi . ?????

Wielka dla mnie niewiadoma.

Jeśli to są jakieś farmazony, to z góry przepraszam, ale ja tego nie potrafię sprawdzić.

Wracam do kalkulacji na podzbiorach liczb pierwszych, których granicami są liczby Fibo.
Góra
Mężczyzna
PostNapisane: 10 lip 2019, o 10:08 
Użytkownik

Posty: 214
Lokalizacja: Wrocław
Napisałeś że:
Slp = \frac12 \Phi = \lim_{n \to \infty } \left( \frac{X}{nk} \right) \Phi \red=\black \frac{k+1}{2k} \Phi
Ja sądzę, że jest hipotetycznie tak:
\lim_{n \to \infty } \left( \frac{X}{nk} \right)=\frac{k+1}{2k}
gdzie kolejne wyrazy ciągu geometrycznego mają właściwość :
a_{n+1}=k*a_n
Zauważ, że ciąg Fibonacciego mocno przypomina ciąg geometryczny gdzie k=\Phi
czyli dla ciągu geometrycznego
a_{n+1}=\Phi*a_n


\frac{\Phi+1}{2\Phi} =0,8090169943844764921779050141161... \approx \frac{\Phi }{2} =0,80901699435

Podrzucam Ci program w C++ do pierwszych 4-5 razy szybszy od algorytmu liniowego i ok 20 razy od Eratostenesa
Ukryta treść:    


-- 10 lip 2019, o 11:57 --

Pomyłka
\frac{\Phi+1}{2\Phi} =0,8090169943... = \frac{\Phi }{2} =0,8090169943... ;-)
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 28 ]  Przejdź na stronę Poprzednia strona  1, 2


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 Istnienie liczb pierwszych spełniających układ kongruencji  max  1
 równanie w liczbach wymiernych - zadanie 3  theoldwest  3
 Rozwiązać równanie w liczbach całkowitych - zadanie 2  Wiesiek7  4
 dla liczb pierwszych  spic_14  2
 Czy równanie x/y+y/z+z/x=4 ma rozw. w liczbach naturalnych  magnolia91  0
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [F.A.Q.] [Reklama] [Kontakt]
Copyright (C) Karpatka.pl