mam do zrobienia takie zadanie: Dla pierwszych 50 dodatnich licz parzystych sprawdz prawdziwość hipotezy Goldbacha. Program na wyjsciu ma podawac sumy danej liczby. Prosze na razie o rozjasnienia mi jak to zrobic a nie calego gotowego rozwiazania
hipoteza Goldbacha
Rozpoczęty przez
norbi123
, 27 09 2008 17:15
3 odpowiedzi w tym temacie
#1
Napisano 27 09 2008 - 17:15
#2
Napisano 30 09 2008 - 00:19
Hipoteza Goldbacha jest dla liczb parzystych większych od 2, więc 50 pierwszych spełniających ten warunek to liczby od 4 do 102.
Na początek proponuję poprzez sito Eratostenesa wyznaczyć liczby pierwsze z powyższego zakresu i zapisać je w tablicy P[ilość liczb pierwszych]
Przypadek szczególny to liczba 4 = 2+2, bo każda następna liczba parzysta musi się składać z 2 nieparzystych (pierwszych).
Następnie dla każdej liczby pierwszej większej od 2 z tablicy P dodać kolejną liczbę pierwszą i zapamiętać to jako sumę pewnej liczby parzystej. Dzięki temu algorytmowi można wyznaczyć w czasie n^2 (dla n - ilość liczb pierwszych) wszystkie sumy, bo np liczba 14 to 7+7 i 3+11.
Jeżeli chodzi o zapamiętywanie takich wyników to jeśli interesuje cię tylko jeden wynik dla jednej liczby parzystej, można użyć 2 tablic a[zakres], b[zakres] (dla zakres = 4..102) i jako a[i] zapamiętać liczbę z pierwszej pętli, a w b[i] z drugiej (np dla a[14] = 3; b[14] = 11;
Jeśli natomiast chcesz pamiętać wszystkie możliwości dobrym rozwiązaniem jest lista jednokierunkowa dla każdej liczby z zakresu, na liście przechowujemy 2 zmienne, czyli a i b
Pozdrawiam
Na początek proponuję poprzez sito Eratostenesa wyznaczyć liczby pierwsze z powyższego zakresu i zapisać je w tablicy P[ilość liczb pierwszych]
Przypadek szczególny to liczba 4 = 2+2, bo każda następna liczba parzysta musi się składać z 2 nieparzystych (pierwszych).
Następnie dla każdej liczby pierwszej większej od 2 z tablicy P dodać kolejną liczbę pierwszą i zapamiętać to jako sumę pewnej liczby parzystej. Dzięki temu algorytmowi można wyznaczyć w czasie n^2 (dla n - ilość liczb pierwszych) wszystkie sumy, bo np liczba 14 to 7+7 i 3+11.
Jeżeli chodzi o zapamiętywanie takich wyników to jeśli interesuje cię tylko jeden wynik dla jednej liczby parzystej, można użyć 2 tablic a[zakres], b[zakres] (dla zakres = 4..102) i jako a[i] zapamiętać liczbę z pierwszej pętli, a w b[i] z drugiej (np dla a[14] = 3; b[14] = 11;
Jeśli natomiast chcesz pamiętać wszystkie możliwości dobrym rozwiązaniem jest lista jednokierunkowa dla każdej liczby z zakresu, na liście przechowujemy 2 zmienne, czyli a i b
Pozdrawiam
#3
Napisano 30 09 2008 - 16:39
Prosiłbym o caly gotowy kod zrodlowy bo potrzebuje to na jutro a nie dalem rady sie z tym wyrobic
#4
Napisano 30 09 2008 - 20:37
A to może być napisał w jakim języku programowania, bo nawet nie wiem, jaki przedrostek winien mieć tytuł tego tematu? (właśnie, wyedytuj nazwę tematu...)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych