Publiczne Gimnazjum nr 1 w Wałbrzychu Generowanie kolejnych liczb pierwszych – sito Eratostenesa Alina Madera Pracownia lekcyjna – duże pomieszczenie klasowe. Ilość uczniów - max 26. Uczniowie nie będą korzystać z pracowni wyposażonej w komputery. Część materiałów pomocniczych do zajęć, uczniowie wykonają samodzielnie w ramach innych jednostek lekcyjnych. Proponowana ilość jednostek lekcyjnych – 2. 1. Temat zajęć: Generowanie kolejnych liczb pierwszych – sito Eratostenesa 2. Cele kształcenia: Uczeń potrafi (wymagane przygotowanie ucznia): Posługiwać się językiem technologii informatycznej; Formułować proste sytuacje problemowe; Podać proste problemy dotyczące optymalizacji rozwiązań z różnych dziedzin; Porządkować i klasyfikować podane wiadomości i informacje, właściwie je przeanalizować i pogrupować; Współpracować w grupie przy opracowaniu rozwiązania problemu, formułować i przedstawiać swoje rozwiązania; Być odpowiedzialny wobec stawianych zadań. 3. Treści problemowe: 3.1 Problem szukania kolejnych liczb pierwszych. Podajemy uczniom problem do rozwiązania: Rozwiązanie problemu proponujemy w formie zabawy wyobraźni i pomysłowości z wykorzystaniem metody graficznej i ruchowej. Sposób przeprowadzania zabawy wprowadzającej uczniów w zadany problem: Dzielimy klasę na pięć grup; Wszystkie grupy proponują rozwiązanie na przygotowanych rysunkach. W puste miejsca wpisują swoje propozycje (rysunek) Dyskusja nad wyborem metody rozwiązania postawionego problemu: W dyskusji oczekujemy uzasadnienia proponowanych rozwiązań, kierujemy się tutaj zasadami: Każdy ma prawo podać swój pomysł; Nie wolno krytykować pomysłów innych; Wszystkie rozwiązania są zapisywane. Celem dyskusji jest wybór najlepszej metody postępowania przy szukaniu liczb pierwszych wspólnie z nauczycielem (jego rola ogranicza się do umiejętnego naprowadzania dzieci przy wyborze metody). Uczniowie analizują wszystkie zaproponowane rozwiązania i wybierają te, które według nich są właściwie. W podsumowaniu dyskusji wprowadzić historię powstania sita Eratostenesa. Po dyskusji można posłużyć się przykładami: Przykład 1. Sformułuj specyfikację problemu szukania liczb pierwszych w zbiorze od 1 do 20. Przykład do omówienia (kartka 1). Przykład 2. Sformułuj specyfikację problemu szukania liczb pierwszych w zbiorze od 1 do 100. Przykład do omówienia (kartka 2). Kartka 1 Znajdźmy na przykład wszystkie liczby pierwsze od 1 do 20. Liczby złożone będą po kolei "usuwane" w sposób podany niżej. Na początku nasz przedział wygląda następująco: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Cała idea tego algorytmu polega na tym, że "idziemy" od lewej strony przedziału poczynając od liczby 2 i gdy liczba ta nie została wcześniej skreślona to skreślamy wszystkie jej wielokrotności w danym przedziale oprócz niej samej. Tak więc zaczynamy od liczby 2. Nie jest ona skreślona, więc skreślamy jej wielokrotności oprócz niej samej. W tym przypadku są to liczby: 4, 6, 8, 10, 12, 14, 16, 18, 20. Po skreśleniu (usunięciu) wyżej wymienionych liczb otrzymujemy: 1 2 3 5 7 9 11 13 15 17 19 Kolejną liczbę, jaką napotykamy po 2 jest liczba 3. Nie została ona wcześniej skreślona, więc skreślamy wszystkie jej wielokrotności w naszym przedziale od 1 do 20 oprócz niej samej. Proszę zauważyć, iż niektóre wielokrotności liczby 3 zostały już skreślone wcześniej. Liczby, które w tym przypadku skreślimy to: 6, 9, 12, 15, 18. Po tej operacji otrzymamy: 1 2 3 5 7 11 13 17 19 Kolejną liczbę, jaką napotkamy idąc od lewej to 4. Ponieważ została ona już wcześniej skreślona to nie wykonujemy już żadnych dodatkowych skreśleń. Proszę zauważyć, że w naszym przedziale zostały już tylko liczby pierwsze. Musimy jeszcze skreślić liczbę 1: 2 3 5 7 11 13 17 19 W sicie, Eratostenesa może pojawić się jeden problem - a mianowicie, do której liczby mamy dojść idąc od lewej od liczby 2, aby w danym przedziale zostały nam tylko liczby pierwsze? Moja odpowiedź brzmi do zaokrąglonego w dół pierwiastka kwadratowego największej liczby z danego przedziału. W naszym przypadku największą liczbą jest 20. Pierwiastek kwadratowy z 20 to około 4,47. Gdy zaokrąglimy tą liczbę w dół to otrzymamy 4. I tylko do tej liczby doszedłem w przykładzie powyżej. Teraz postaram się wytłumaczyć, dlaczego akurat dochodzimy do tej liczby. Każda liczba złożona w danym przedziale to iloczyn dwóch innych liczb (nie muszą być one koniecznie pierwsze). Liczby te mogą być równe sobie - wtedy wartość tych liczb to pierwiastek kwadratowy z danej liczby złożonej. Jednakże, gdy liczby te nie są sobie równe - to jedna jest większa, a druga mniejsza. Mniejsza z tych liczb jest mniejsza od pierwiastka kwadratowego z danej liczby złożonej. Tak, więc, aby skreślić daną liczbę złożoną musimy dojść, (gdy idziemy po kolei od 2) do tej mniejszej liczby, nie musimy wcale dochodzić do tej większej. Kartka 2 Przypuśćmy, że chcemy znaleźć wszystkie liczby pierwsze wśród liczb od 1 do 100. 1) Ustawiamy liczby w ciąg: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 2) 1 nie jest liczbą pierwszą, więc ją skreślamy. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3) Listę rozpoczyna liczba 2. Jest to liczba pierwsza. Teraz wykreślamy wszystkie liczby większe od 2 i podzielne przez 2. 2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 4) Najmniejszą liczbą jest teraz liczba 3 (jest to liczba pierwsza - gdyby nią nie była, to dzieliłaby się, przez 2, ale wtedy byłaby wykreślona). Skreślamy teraz z listy wszystkie liczby większe od 3 i podzielne przez 3. 2 357 11 13 17 19 23 29 31 35 37 41 43 47 49 53 55 59 61 65 67 71 73 77 79 83 85 89 91 95 97 5) Najmniejszą liczbą na liście jest liczba 5. Jest to liczba pierwsza (argumentacja jak wyżej). Skreślamy teraz wszystkie liczby podzielne przez 5 i większe od 5. 2357 11 13 17 19 23 29 31 37 41 43 47 49 53 59 61 67 71 73 77 79 83 89 91 97 6) Najmniejszą liczbą na liście jest liczba 7. Jest ona liczbą pierwszą. Wykreślamy wszystkie jej wielokrotności. 2357 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Zwróćmy uwagę, że do znalezienia wszystkich liczb pierwszych wystarczy badać liczby pierwsze niewiększe od . Dzieje się tak, dlatego, że biorąc pod uwagę liczbę pierwszą p, zaczynam skreślanie od liczby p2 - mniejsze wielokrotności p są już skreślone (dzielą się przez liczbę mniejszą od p). Najbliższą liczbą pierwszą jest 11. Zauważmy, że liczby pierwsze od 1 do 100. Oto one: 2357 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 , więc znaleźliśmy wszystkie 3.2 Na czym polega generowanie kolejnych liczb pierwszych w sicie Eratostenesa? Co to jest algorytm? Algorytm jest dokładnym przepisem rozwiązania problemu lub osiągnięcia zamierzonego celu krok po kroku. Osiągnięcie założonego przez nas celu zależeć będzie również od zaproponowanego sposobu rozwiązywania, a dokładniej – techniki algorytmicznej. Jedną z form przedstawienia algorytmu, dla jego przejrzystości służy tzw. algorytm blokowy algorytm blokowy: opis krok po kroku rozwiązania postawionego problemu lub sposobu osiągnięcia jakiegoś celu, który powinien być dokładnie określony w postaci umownych bloków decyzyjnych. Cechy algorytmu: dane winny być dokładnie sprecyzowane ( winny być uniwersalne), cel (wynik), który chcemy osiągnąć jasno określony oraz powiązany z danymi; to powiązanie danych z wynikiem – czyli jak rodzaj i ilość oraz jakość danych wpłynie na wynik, ( nazywamy to specyfikacją problemu). W celu lepszego zrozumienia idei algorytmu, zaproponowano zabawę z uczniami w oparciu o przedstawiony schemat algorytmu. Dopiero po przeprowadzonej zabawie i dyskusji, można przystąpić do rysowania schematu oraz do sprawdzenie jego działania na innych przykładach. Na tablicy wisi plansza złożona ze stu pierwszych liczb naturalnych: blokowego algorytmu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Uczniowie podchodzą do tablicy i skreślają liczby złożone według podanego algorytmy Eratostenesa. Następnie uczniowie przeprowadzają zabawę ruchową. Proponujemy, aby uczniowie ustawili się na środku klasy w półkole. Każdy uczeń dostaje kartkę z liczbą (od 1 do 30). Zgodnie z algorytmem sita Eratostenesa „przesiewają” liczby, które trzymają uczniowie. 1. Jeden nie jest liczbą pierwszą, więc wyjdzie z koła 2. Wyjdą z koła uczniowie, którzy mają liczby podzielne przez 2 (oprócz 2). 3. Następnie wyjdą ci uczniowie, którzy mają liczby podzielne przez 3 (oprócz 3). 4. Następnie wyjdą z koła liczby podzielne przez 5 (oprócz 5). Jakie liczby zostały w kole, czyli w sicie? ( rysunek 2). W działaniu sita Eratostenesa widoczny jest analogia do sit stosowanych w praktyce np. wialnia – maszyna do oczyszczania ziarna z plew składa się z kilku sit o różnej gęstości siatki drucianej. Również liczby z przedziału (2,30) przechodzą przez trzy sita zatrzymując odpowiednie wielokrotności 2, 3 i 5. Liczby pierwsze są tymi, które nie przeszły przez zestaw sit. 4. Algorytm – sito Eratostenesa Przyjmujemy spostrzeżenia: Wystarczy od samego początku rozważać jedynie liczby nieparzyste, gdyż parzyste będą „przesiane” w pierwszym kroku przez oczka nastawiona na liczby podzielne przez 2; Niech p będzie kolejną liczbą pierwszą, której mamy użyć do odsiania liczb złożonych, podzielnych przez p. wtedy wystarczy wyeliminować liczby mające postać p 2, p(p+2), p(p+4),... Wynika stąd, że liczby q p, gdzie q < p, zostały przesiane przez q, a liczb p(p+1), p(p+3),.... nie musimy już przesiewać, gdyż są one parzyste (p, jako liczba pierwsza, jest liczbą nieparzystą). Kolejnym uproszczeniem jest wykonanie w algorytmie jedynie dodawań w miejsce mnożeń – kolejno eliminowana liczba jest, bowiem o 2p większa od poprzedniej. Algorytm sita Eratostenesa Liczba naturalna N (dla uproszczenia można założyć, że jest to liczba parzysta Dane: równa 2M). Tablica S[1..M], w której Si = 1, jeśli 2i + 1 jest liczbą pierwszą, a 0 – w Wyniki: przeciwnym przypadku. Krok 1 {Początkowe wartości zmiennych} Sj : = 1 dla j = 1, 2, ...,M; i : =1; p : = 3, q : = 4. Krok 2 Jeśli Si = 0, to przejdź do kroku 4. Krok 3 {Liczba pierwsza p służy do odsiania jej wielokrotności, począwszy od miejsca q w tablicy S} Przyjmij j : = q. Dopóki j M, wykonuj Sj : = 0; j : = j + p. Wykonaj przypisania: i : = i + 1; p : = p + 2; q : = q + 2p – 2. Jeśli q M, to wróć Krok 4 do kroku 2, a w przeciwnym razie zakończ algorytm. Przykład działania sita Eratostenesa dla liczby naturalnej N = 100 i S[i] p q Odsiane liczby 1 1 3 4 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99 2 1 5 12 25, 35, 45, 55, 65, 75, 85, 95 3 1 7 24 49, 63, 77, 91 4 0 9 40 p nie jest liczbą pierwszą 5 1 11 60 q > M – koniec algorytmu Sposób przedstawiania uczniom algorytmu Start Podaj zakres liczb pierwszych M j:=1 i:=1 p:=3 q:=4 1 <j> <0> j:=j+1 N j=M <j> <0> S N S:=0 i:=i+1 p:=p+2 q : = q +2p - 2 j:=q N N j>M qM Koniec 0 <j> <0> j:=j+p Zadanie domowe 1. Znajdź wszystkie liczby pierwsze metodą sita Eratostenesa z przedziału liczb naturalnych od 1 do 200. 2. Przetestuj działanie algorytmu Eratostenesa w przedziale od 1 do 500 (dla zainteresowanych). 5.Osiągnięcia ucznia Uczeń: potrafi współpracować w grupie i podejmować decyzje przy realizacji wspólnego zadania, potrafi przekazywać swoje pomysły i informacje w różnych formach, używając tekstu, rysunku, potrafi prowadzić obserwacje i posługiwać się modelami przy objaśnianiu zagadnień i problemów, potrafi samodzielnie zapisywać proste algorytmy w postaci procedur, zna proste sposoby i przykłady testowania zaproponowanych rozwiązań, potrafi zaproponować rozwiązania alternatywne, zaproponowane rozwiązania potrafi przetwarzać, modyfikować wykorzystywać w innych zadaniach, posiada umiejętność dyskutowania i wprowadzania zmian. Alina Madera