Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

algorytm, liczba pierwsza

Ostatnio zmodyfikowano 2017-05-19 23:44
Autor Wiadomość
kejkun
Temat założony przez niniejszego użytkownika
algorytm, liczba pierwsza
» 2013-01-01 19:09:37
b) Sito Eratostenesa, opisane na początku zadania, służy do wyznaczania wszystkich liczb
pierwszych z zadanego przedziału [2, N].


Podaj w wybranej przez siebie notacji (lista
kroków, schemat blokowy lub język programowania) inny algorytm, który sprawdza, czy
podana liczba naturalna L > 1 jest liczbą pierwszą.


 Zauważ, że chcemy sprawdzać
pierwszość tylko liczby L, natomiast nie jest konieczne sprawdzanie pierwszości liczb
mniejszych od L. Przy ocenie Twojego algorytmu będzie brana pod uwagę jego złożoność
czasowa.


Specyfikacja:
Dane: Liczba naturalna L >1.
Wynik: Komunikat Tak, jeśli L jest liczbą pierwszą, komunikat Nie w przeciwnym razie.




1.wprowadź L
2. jeżeli L % 1 !==0   lub    L <2   wyświetl komunikat " zła liczba " i przejdź do kroku 1.
3. oblicz sqrt(L)
4.  wprowadź    i = int
5. i = 2
6.   for ( i = 2; i <= sqrt (L) ; i++)   zrób krok 7.
7.  if   L % i == 0   jeżeli tak -> zakończ pętle    i wyświetl komunikat " nie " ,
 jeśli nie : wyświetl komunikat " tak "
8. zakończ algorytm






witam, zastanawiam się jaka forma pisania algorytmu jest do " przyjęcia" na maturze.
co sądzicie o mojej formie ? ?
czy jest dozwolone takie użycie ?
mieszanie angielskiego, polskiego i c++ ??

P-72647
Mike148
» 2013-01-01 19:33:06
Według mnie to nie ważne jak nazwane, ważne, że dobrze działa i jest wydajne. Na olimpiadach informatycznych nie jest sprawdzane jak coś zapisałeś tylko czy to działa wydajnie, więc podejrzewam, że podobnie jest na maturze.
P-72649
kejkun
Temat założony przez niniejszego użytkownika
» 2013-01-01 19:35:32
właśnie nie mam pewności :(
stąd chciałbym aby wypowiedział się ktoś kto zna się na tym .

P-72650
Mrovqa
» 2013-01-01 19:42:19
Do liczb pierwszych jeżeli ograniczenie wielkości kodu nie przeszkadza, to stwórz sobie gotową tablicę liczb pierwszych - tzn. wygeneruj ją sobie wcześniej i wklej do pliku z kodem. Później już tylko sprawdzasz, czy liczba mieści się w tablicy (przeszukiwaniem binarnym masz złożoność logarytmiczną), ewentualnie możesz wygenerować liczby do sqrt(n) i sprawdzać podzielność testowanej liczby. Algorytmów jest wiele :) Do wygenerowania tablicy można użyć sita.
P-72651
Mike148
» 2013-01-01 19:46:02
Jak umiejętnie stworzysz tablicę to nie będziesz musiał używać przeszukiwania jej i złożoność zmaleje :P
P-72652
Mrovqa
» 2013-01-01 20:15:55
Jak umiejętnie stworzysz tablicę to nie będziesz musiał używać przeszukiwania jej i złożoność zmaleje :P
Wiesz o tym, że ten sposób zużywa bardzo dużo pamięci? Jeżeli mieści się limicie to żaden problem, ale ogólnie to jest zły pomysł.
P-72654
Mike148
» 2013-01-01 20:48:36
Ale czasami jedyne rozwiązanie. Na maturze nie wiem czy da się to zrobić tak jak mówiłeś. Szczerze mówiąc przy zadaniach algorytmicznych nie spotkałem się jeszcze, żeby komuś pamięci brakło.
P-72658
kejkun
Temat założony przez niniejszego użytkownika
» 2013-01-01 20:54:25
to moze klucz zobaczcie :
Za podanie poprawnego algorytmu sprawdzającego:
- czy L jest podzielna przez i = 2,.., L – 1
– 3 punkty,
- czy L jest podzielna przez i = 2,.., ⎢ L / 2⎥   <- pierwiastek
⎣ ⎦
– 4 punkty,
- czy L jest podzielna przez i = 2,.., ⎢ L⎥ <- pierwiastek
⎣ ⎦
– 6 punktów.


czyli raczej pomysł z utworzeniem tablicy jest słaby ;x ?


no ale mozemy wrócmy tak do mojego algorytmu, czy nadaje się na maturę czy też nie ?
jakieś uwagi ??
P-72659
« 1 » 2
  Strona 1 z 2 Następna strona