PROBLEM. Znaleźć rozkład liczby p > 1. na iloczyn czynników pierwszych.
|
|
- Daniel Olejniczak
- 7 lat temu
- Przeglądów:
Transkrypt
1 PROBLEM Znaleźć rozkład liczby p > 1. na iloczyn czynników pierwszych. Postawiony problem posiada bardzo duże znaczenie w wielu dziedzinach informatyki szczególnie w kryptografii. Na dzień dzisiejszy nie istnieje powszechnie znany żaden szybki algorytm rozkładu dużej liczby naturalnej na czynniki pierwsze. Na tym fakcie opierają swoje bezpieczeństwo współczesne systemy szyfrowania informacji np. RSA. Dla przykładu rozkład 200 cyfrowej liczby zajął 18 miesięcy wielu komputerom pracującym w sieci w sumie czas obliczeń dla pojedynczej maszyny wyniósł ponad pół wieku! Zasadnicze twierdzenie arytmetyki mówi, iż każda liczba naturalna większa od 1 może być jednoznacznie zapisana jako iloczyn liczb pierwszych
2 Na przykład: 1200 = i nie istnieje żaden inny rozkład dla liczby 1200 Znając rozkład liczby na czynniki pierwsze można dla niej określić wszystkie możliwe podzielniki. Na przykład każdy podzielnik liczby 1200 da się zapisać jako: p 1200 = 2 a 3 b 5 c, gdzie a {0,1,2,3,4}, b {0,1}, c {0,1,2} Zatem wszystkich możliwych podzielników jest tyle ile wynosi iloczyn liczebności możliwych wartości a, b i c: 5 x 2 x 3 = 30 Podstawowe twierdzenie arytmetyki mówi nam, iż rozkład na czynniki pierwsze jest zawsze możliwy i jednoznaczny, lecz nie mówi, jak tego mamy dokonać.
3 Rozwiązanie 1 Pierwsze podejście do znalezienia rozkładu liczby p na jej czynniki pierwsze jest bardzo prymitywne, chociaż daje oczywiście poprawny wynik. Nazywa się ono bezpośrednim poszukiwaniem rozkładu na czynniki pierwsze. Będziemy sprawdzać podzielność liczby p przez kolejne liczby naturalne od 2 do pierwiastka z p. Jeśli liczba p będzie podzielna przez daną liczbę, to liczbę wyprowadzimy na wyjście, a za nowe p przyjmiemy wynik dzielenia i próbę dzielenia będziemy powtarzać dotąd, aż nie będzie to już możliwe. Wtedy przejdziemy do następnego dzielnika.
4 Przykład: Rozłożyć liczbę na czynniki pierwsze. Podział Reszta Czynnik Znalezione czynniki Uwagi : 2 = dzieli się : 2 = dzieli się : 2 = X 2 2 nie dzieli się : 3 = dzieli się 3675 : 3 = dzieli się 1225 : 3 = X nie dzieli się 1225 : 4 = X nie dzieli się 1225 : 5 = dzieli się 245 : 5 = dzieli się 49 : 5 = 9 4 X nie dzieli się 49 : 6 = 8 1 X nie dzieli się 49 : 7 = dzieli się 7 : 7 = dzieli się = Kończymy, ponieważ wynik ostatniego dzielenia jest równy 1
5 ALGORYTM ROZKŁADU LICZBY NATURALNEJ NA CZYNNIKI PIERWSZE Wejście p liczba rozkładana na czynniki pierwsze, p ϵ N, p > 1 Wyjście: Czynniki pierwsze liczby p. Elementy pomocnicze: g granica sprawdzania podzielności liczby p. g ϵ N i kolejne podzielniki, i ϵ N
6 Lista kroków: K01: g [ p] ; granica sprawdzania czynników pierwszych K02: Dla i = 2,3,...,g wykonuj kroki K03...K06 ; w pętli sprawdzamy podzielność liczby p przez kolejne liczby K03: Dopóki p mod i = 0 ; dopóki dzielnik dzieli p K04: Pisz i ; wyprowadzamy go i K05: p p div i ; dzielimy przez niego p K06: Jeśli p = 1, to zakończ ; pętlę przerywamy, gdy stwierdzimy brak dalszych dzielników K07: Jeśli p > 1, to pisz p ; p może posiadać ostatni czynnik większy od pierwiastka z p K08: Zakończ
7 Program w pierwszym wierszu czyta liczbę p i w następnym wierszu wypisuje kolejne czynniki pierwsze tej liczby.
8 ROZWIĄZANIE 2 Poprzedni algorytm sprawdza podzielność liczby p przez wszystkie kolejne liczby naturalne, zawarte w przedziale <2, p>. Tymczasem poszukiwane podzielniki muszą być liczbami pierwszymi. Jeśli nie mamy liczb pierwszych pod ręką, to przynajmniej możemy ograniczyć dzielenia do liczb 2, 3 oraz 6k±1, dla k = 1,2... wpadających w przedział <2, p>. Prezentowany poniżej algorytm dokonuje takiej właśnie optymalizacji, redukując do 1 / 3 liczbę sprawdzanych podzielników
9 ALGORYTM ROZKŁADU LICZBY NATURALNEJ NA CZYNNIKI PIERWSZE Wejście p liczba rozkładana na czynniki pierwsze, p ϵ N, p > 1 Wyjście: Czynniki pierwsze liczby p. Elementy pomocnicze: g granica sprawdzania podzielności liczby p. g ϵ N i kolejne podzielniki, i ϵ N k,d zmienne do generacji liczb postaci 6k±1, k N, d {-1, 1}
10 LISTA KROKÓW K01:g [ p]; wyznaczamy granicę sprawdzania podzielności K02:k 1; d -1; współczynniki do generacji liczb postaci 6k±1 K03:i 2; początek sprawdzania podzielności K04:Dopóki i g wykonuj kroki K05...K12 K05: Dopóki p mod i = 0 wykonuj kroki K06...K07; wyznaczamy dzielnik p K06: Pisz i K07: p p div i; modyfikujemy p K08: Jeśli p = 1, to idź do K14; p nie jest już podzielne K09: Jeśli i 3, to idź do K11; wyznaczamy następny podzielnik K10: i i + 1 i następny obieg pętli K04; podzielniki 2 i 3 K11: i 6k + d; pozostałe, postaci 6k±1 K12: Jeśli d = 1, to d -1; k k + 1 inaczej d 1; modyfikujemy współczynniki dla następnego podzielnika K13:Jeśli p 1, to pisz p; ewentualny, ostatni podzielnik K14:Zakończ Mamy program, który wczytuje liczbę p i wypisuje jej czynniki pierwsze:
11 Program w pierwszym wierszu czyta liczbę p i w następnym wierszu wypisuje kolejne czynniki pierwsze tej liczby
12 PROBLEM: SPRAWDZIĆ, CZY LICZBA NATURALNA Rozwiązanie 1 P JEST PIERWSZA. Liczba jest pierwsza,jeśli nie posiada dzielników ( innych poza 1 i sobą samą. Pierwsze rozwiązanie testu na pierwszość polega na próbnym dzieleniu liczby p przez liczby z przedziału od 2 do [ p] i badaniu reszty z dzielenia. Powód takiego postępowania jest prosty jeśli liczba p posiada czynnik większy od pierwiastka z p, to drugi czynnik musi być mniejszy od pierwiastka, aby ich iloczyn był równy p. W przeciwnym razie iloczyn dwóch liczb większych od p dawałby liczbę większą od p. Zatem wystarczy przebadać podzielność p przez liczby z przedziału <2,[ p]>, aby wykluczyć liczby złożone.
13 ALGORYTM SPRAWDZANIA PIERWSZOŚCI LICZBY NATURALNEJ Wejście p liczba badana na pierwszość, p N, p > 1 Wyjście: TAK, jeśli p jest pierwsze lub NIE w przypadku przeciwnym. Elementy pomocnicze: g granica sprawdzania podzielności p. g Ni kolejne podzielniki liczby p, i N Lista kroków: K01:g [ p] ; wyznaczamy granicę sprawdzania podzielności p K02:Dla i = 2,3,...,g wykonuj krok K03 ; przebiegamy przez przedział <2,[ p]> K03: Jeśli p mod i = 0, to pisz NIE i zakończ ; jeśli liczba z przedziału <2,[ p]> dzieli p, to p nie jest pierwsze K04:Pisz TAK ; jeśli żadna liczba z <2,[ p]> nie dzieli p, p jest pierwsze K05:Zakończ
14 Program odczytuje w pierwszym wierszu liczbę p, a w drugim wierszu wypisuje słowo TAK, jeśli liczba p jest pierwsza lub NIE w przypadku przeciwnym. W programie zastosowano zmienne 64 bitowe, zatem zakres p jest dosyć duży. Jednakże dla wielkich liczb naturalnych test na pierwszość może zająć wiele czasu.
15 ROZWIĄZANIE 2 Liczba p jest liczbą pierwszą, jeśli nie dzieli się przez żadną liczbę pierwszą z przedziału <2,[ p]>. Wszystkie liczby pierwsze z wyjątkiem 2 są liczbami nieparzystymi. Możemy zatem w poprzednim algorytmie zmniejszyć dwukrotnie liczbę potrzebnych dzieleń, jeśli liczbę p będziemy dzielić przez kolejne liczby nieparzyste z przedziału <2,[ p]>. Oczywiście najpierw należy wykonać test podzielności przez 2.
16 ALGORYTM SPRAWDZANIA PIERWSZOŚCI LICZBY NATURALNEJ Wejście p liczba badana na pierwszość, p N, p > 1Wyjście: TAK, jeśli p jest pierwsze lub NIE w przypadku przeciwnym. Elementy pomocnicze: g granica sprawdzania podzielności p. g Ni kolejne podzielniki liczby p, i N Lista kroków: K01Jeśli p = 2, to idź do K08; liczba 2 jest pierwsza K02:Jeśli p mod 2 = 0, to idź do K10; sprawdzamy podzielność przez 2 K03:g [ p]; granica sprawdzania podzielności K04:i 3; pierwszy podzielnik nieparzysty K05:Dopóki i g, wykonuj kroki K06...K07; w pętli sprawdzamy podzielność przez podzielniki nieparzyste K06: Jeśli p mod i = 0, to idź do K10 K07: i i + 2; następny podzielnik nieparzysty K08:Pisz "TAK"; p nie dzieli się, zatem jest pierwsze K09:Zakończ K10:Pisz "NIE"; p jest podzielne, zatem nie jest pierwsze K11:Zakończ
17 Program odczytuje w pierwszym wierszu liczbę p, a w drugim wierszu wypisuje słowo TAK, jeśli liczba p jest pierwsza lub NIE w przypadku przeciwnym
18 ROZWIĄZANIE 3 Liczbę niezbędnych dzieleń można dalej ograniczyć, jeśli liczbę p będziemy dzielić przez dzielniki: 2, 3 oraz 6k ± 1, dla k = 1,2,..., 6k ± 1 <2,[ p]>. Dwa pierwsze dzielniki są początkowymi liczbami pierwszymi. Gdy wyeliminujemy czynniki 2 i 3, pozostałe liczby pierwsze muszą przybrać postać 6k ± 1. Wyjaśnienie jest bardzo proste: 6k = 2 3 k liczby podzielne przez 2 i 3 nie są pierwsze 6k ± 2 = 2 (3k ± 1) liczby podzielne przez 2 nie są pierwsze 6k ± 3 = 3 (2k ± 1) liczby podzielne przez 3 nie są pierwsze 6k ± 4 = 2 (3k ± 2) liczby podzielne przez 2 nie są pierwsze Pozostają liczby postaci: 6k ± 1, które mogą być pierwsze (ale nie muszą!). Jednakże liczb tych jest 1 / 3 w stosunku do pierwotnego algorytmu, co zaowocuje zmniejszeniem liczby wykonywanych dzieleń
19 ALGORYTM SPRAWDZANIA PIERWSZOŚCI LICZBY NATURALNEJ Wejście p liczba badana na pierwszość, p N, p > 1Wyjście: TAK, jeśli p jest pierwsze lub NIE w przypadku przeciwnym. Elementy pomocnicze: g granica sprawdzania podzielności p. g ϵ N i podzielniki liczby p, i ϵ N k mnożnik do wyznaczania podzielników postaci 6k ± 1, k ϵ N d zmienna pomocnicza do wyznaczania podzielników, d ϵ {false,true}
20 LISTA KROKÓW: K01: g [ p]; wyznaczamy granicę sprawdzania podzielności K02: i 2; pierwszy dzielnik K03: k 1; d false;; ustawiamy zmienne pomocnicze K04: Dopóki i g, wykonuj kroki K05...K14 K05: Jeśli p mod i = 0, to idź do K17; sprawdzamy podzielność p przez i K06: Jeśli i > 2, to idź do K09; podzielniki > 3 generujemy wg wzoru 6k ± 1 K07: i i + 1; podzielniki 2 i 3 K08: Następny obieg pętli K04 K09: d d; generujemy podzielnik i = 6k ± 1 K10: i 6k K11: Jeśli d = true, to idź do K14 K12: k k + 1 K13 i i + 1 i następny obieg pętli K04 K14 i i - 1 K15:Pisz "TAK"; p nie dzieli się przez żaden z dzielników K16:Zakończ K17:Pisz "NIE"; p nie jest pierwsze K18:Zakończ
21 Program odczytuje w pierwszym wierszu liczbę p, a w drugim wierszu wypisuje słowo TAK, jeśli liczba p jest pierwsza lub NIE w przypadku przeciwnym.
22 PROBLEM : DANY, SKOŃCZONY ZBIÓR LICZB CAŁKOWITYCH POMIESZAĆ PSEUDOLOSOWO Mieszanie pseudolosowe Zadanie mieszania, tasowania zawartości tablicy sprowadza się do wykonywania w pętli zamiany miejscami dwóch elementów tablicy o wylosowanych indeksach. Pętla musi być wykonana tyle razy, aby tasowanie objęło wszystkie elementy w praktyce wystarcza ilość wykonań równa 3n, gdzie n jest ilością elementów.
23 ALGORYTM MIESZANIA PSEUDOLOSOWEGO Wejście n liczba elementów w tablicy, n ϵ N Z tablica elementów, indeksy rozpoczynają się od 0 Wyjście: Tablica Z z potasowaną zawartością Zmienne pomocnicze i licznik obiegów pętli, iϵ N x przechowuje element tablicy Z przy zamianie zawartości. Typ ten sam, co elementy tablicy Z.losowa(x) funkcja zwracająca liczbę pseudolosową z zakresu od 0 do x - 1 Lista kroków: K01:Dla i = 1,2,...,3n: wykonuj K02...K07; tasowanie wykonujemy w pętli K02: i 1 losowa(n); losujemy pierwszy indeks K03: i 2 losowa(n); losujemy drugi indeks K04: x Z[i 1 ]; zamieniamy miejscami Z[i 1 ] i Z[i 2 ] K05: Z[i 1 ] Z[i 2 ] K06: Z[i 2 ] x K07:Zakończ
24 Program tasuje tablicę 10 elementów całkowitych o kolejnych wartościach od 0 do 9. Tablica jest najpierw wyświetlana przed tasowaniem, a następnie po tasowaniu.
25 PROBLEM : WYLOSOWAĆ Z PRZEDZIAŁU CAŁKOWITEGO <A,B> N LICZB PSEUDOLOSOWYCH BEZ POWTÓRZEŃ. Losowanie bez powtórzeń Zadanie losowania bez powtórzeń można rozwiązać na kilka różnych sposobów. Jeśli przedział <a,b> jest mały (np. zawiera 80 kolejnych liczb Multi-Lotka), to możemy go odwzorować w tablicy, następnie zawartość tej tablicy potasować poprzednio podanym algorytmem i jako wynik zwrócić pierwsze n elementów. Tasowanie nie dubluje elementów tablicy, zatem otrzymamy n liczb bez powtórzeń. Taki algorytm posiada klasę złożoności obliczeniowej O(n). Jeśli przedział <a,b> jest bardzo duży, a n stosunkowo małe, to postępujemy w sposób następujący. Przygotowujemy pustą tablicę o n elementach. Losujemy liczbę pseudolosową. Jeśli wylosowana liczba jest już w tablicy, to losujemy ponownie dotąd, aż wylosowanej liczby nie będzie w tablicy. Liczbę dopisujemy do tablicy. Jeśli tablica jest zapełniona, kończymy. W przeciwnym razie powtarzamy losowanie. Algorytm w takiej postaci posiada optymistyczną klasę złożoności obliczeniowej O(n 2 ).
26 ALGORYTM LOSOWANIA BEZ POWTÓRZEŃ Wejście n liczba określająca, ile liczb pseudolosowych bez powtórzeń należy wylosować, n ϵ N a,b liczby określające całkowity przedział losowania, b - a n, a,b ϵc Wyjście: n różnych od siebie liczb pseudolosowych z przedziału <a,b> Zmienne pomocnicze T tablica przechowująca wylosowane liczby pseudolosowe. Indeksy od 0 do n-1. i licznik wylosowanych liczb pseudolosowych, i ϵ N j wykorzystywane do przeszukiwania tablicy T, j ϵ N x wylosowana liczba pseudolosowalosowa (x) funkcja zwracająca liczbę pseudolosową z zakresu od 0 do x - 1 Lista kroków: K01:Dla i = 0,1,...,n-1 wykonuj K02...K06 K02: x a + losowa(b - a + 1); losujemy liczbę pseudolosową K03: Dla j = 0,1,...,i - 1 wykonuj K04; sprawdzamy, czy wylosowana liczba jest w T K04: Jeśli T[j] = x, to idź do K02; jeśli tak, powtarzamy losowanie K05: T[i] x; jeśli nie, zapamiętujemy w T wylosowaną liczbę K06: Wyprowadź x; wyprowadzamy liczbę na wyjście K07:Zakończ
27 W pierwszym wierszu program odczytuje trzy liczby: a,b krańce przedziału, n ilość liczb pseudolosowych do wylosowania. Jeśli długość przedziału <a,b> pozwala na wygenerowanie zadanej ilości różnych liczb pseudolosowych, to program je generuje i wyświetla w następnym wierszu. W przeciwnym razie wypisuje odpowiedni komunikat.
28 PROBLEM: WYZNACZYĆ N-TY WYRAZ CIĄGU FIBONACCIEGO. Leonardo Fibonacci był włoskim matematykiem żyjącym w latach od 1175 do Jest on autorem specyficznego ciągu liczbowego, który pojawia się w wielu zastosowaniach informatycznych (i nie tylko). Wyrazy ciągu Fibonacciego definiujemy rekurencyjnie w sposób następujący: F 0 = 0 F 1 = 1 F i = F i-2 + F i-1, dla i > 1 Oto kilka pierwszych wyrazów ciągu Fibonacciego:
29 ROZWIĄZANIE PIERWSZE ROZWIĄZANIE OPIERAMY BEZPOŚREDNIO NA DEFINICJI WYKORZYSTUJĄC WYWOŁANIA REKURENCYJNE. JEST TO BARDZO ZŁE ROZWIĄZANIE (PODAJEMY JE TYLKO ZE WZGLĘDÓW DYDAKTYCZNYCH), PONIEWAŻ ALGORYTM WIELOKROTNIE OBLICZA WYRAZY CIĄGU, CO W EFEKCIE PROWADZI DO WYKŁADNICZEJ KLASY ZŁOŻONOŚCI OBLICZENIOWEJ O(2 N ). DLA DUŻYCH N CZAS OBLICZEŃ MOŻE SIĘGAĆ MILIARDÓW... MILIARDÓW TYSIĄCLECI. Algorytm generacji liczb Fibonacciego metodą rekurencyjną: Wejście n numer liczby ciągu Fibonacciego do wyliczenia, n ϵn Wyjście: n-ta liczba ciągu Fibonacciego Lista kroków funkcji Fibo(n) K01:Jeśli n 1, to zwróć n i zakończ; f 0 lub f 1 K02:Zwróć Fibo(n - 2) + Fibo(n - 1) i zakończ; dwa wywołania rekurencyjne
30 W pierwszym wierszu program odczytuje n numer liczby Fibonacciego do wyliczenia. W następnym wierszu program wypisuje wartość n-tej liczby Fibonacciego. Z uwagi na wykładniczą klasę złożoności obliczeniowej czas obliczeń szybko rośnie, zatem nie podawaj zbyt dużych n (<45), inaczej nie doczekasz się wyniku lub komputer zgłosi przepełnienie pamięci.
31 ROZWIĄZANIE DRUGIE Poprzednie rozwiązanie jest bardzo proste. Niestety wywołania rekurencyjne powodują, iż komputer wielokrotnie oblicza te same liczby Fibonacciego. W ramach ćwiczeń proponuję dodać w wywołaniu funkcji Fibo() licznik, który zwiększa swój stan o 1 przy każdym wywołaniu. Na końcu programu, oprócz wartości Fibo(n), wyświetlamy również stan licznika da nam to pojęcie o ilości wywołań rekurencyjnych. Drugie rozwiązanie wykorzystuje zasadę programowania dynamicznego (ang. dynamic programming). Polega ona na tym, iż rozwiązanie wyższego poziomu obliczamy z rozwiązań otrzymanych na poziomie niższym, które odpowiednio zapamiętujemy. Dzięki temu podejściu program nie musi liczyć wszystkich składników od początku, wykorzystuje wyniki poprzednich obliczeń. W efekcie klasa złożoności obliczeniowej algorytmu spadnie do O(n). Jeszcze lepsze rozwiązanie podajemy w rozdziale dotyczącym potęgowania macierzy.
32 ALGORYTM GENERACJI LICZB FIBONACCIEGO METODĄ ITERACYJNĄ Wejście n numer liczby ciągu Fibonacciego do wyliczenia, n ϵ N Wyjście: n-ta liczba ciągu Fibonacciego Elementy pomocnicze: f 0,f 1,f kolejne trzy liczby Fibonacciego, f 0,f 1,f ϵ C Lista kroków: K01:f 0 0; pierwsza lub f i-2 liczba Fibonacciego K02:f 1 1; druga lub f i-1 liczba Fibonacciego K03:Dla i = 0,1,...,n wykonuj K04...K08 K04: Jeśli i > 1, to idź do K06 K05: f i i następny obieg pętli K03 K06: f f 0 + f 1 ; obliczamy kolejną liczbę Fibonacciego K07 : f 0 f 1 ; zapamiętujemy wyniki obliczeń pośrednich K08: f 1 f; dla następnego obiegu pętli K09:Pisz f K10:Zakończ
33 Program odczytuje z pierwszego wiersza numer n liczby Fibonacciego, a w następnym wierszu wyświetla jej wartość. Z uwagi na ograniczony zakres liczb 64 bitowych, program wylicza dokładnie maksymalnie 93-cią liczbę ciągu Fibonacciego.
34 PROBLEM : ZNALEŹĆ KWADRATOWY PIERWIASTEK CAŁKOWITY NIEUJEMNEJ LICZBY RZECZYWISTEJ X. Całkowity pierwiastek kwadratowy (ang. integer square root) jest największą liczbą całkowitą p, która spełnia nierówność: p 2 x
35 Problem możemy rozwiązać następująco. ROZWIĄZANIE NR 1 Tworzymy ciąg kwadratów kolejnych liczb całkowitych począwszy od 0: i 2 do momentu, gdy dla pewnego i otrzymamy spełnioną nierówność i 2 > x. Wtedy p = i - 1. Pozostaje do rozwiązania efektywny sposób tworzenia kwadratów kolejnych liczb całkowitych. Wypiszmy kilkanaście początkowych wyrazów tego ciągu:... i i
36 Teraz policzmy ciąg różnic pierwszego rzędu: r 1i = i 2 - (i-1) 2, dla i > 0. Różnica pierwszego rzędu powstaje przez odjęcie od wyrazu i-tego jego poprzednika w ciągu, czyli wyrazu (i - 1)-szego. i i r
37 Ciekawa rzecz różnice pierwszego rzędu dla naszego ciągu tworzą ciąg kolejnych liczb nieparzystych. Teraz analogicznie utwórzmy ciąg różnic drugiego rzędu: r 2i = r 1i - r 1(i-1), dla i > 1 Różnice drugiego rzędu powstają w analogiczny sposób z różnic pierwszego rzędu, jak różnice pierwszego rzędu powstają z wyrazów ciągu od i-tej różnicy pierwszego rzędu odejmujemy poprzedzającą ją, (i - 1)-szą różnicę. i i r r
38 Różnice rzędu drugiego tworzą już ciąg stały o wyrazach równych 2. Nie ma sensu liczyć różnic wyższych rzędów, ponieważ otrzymamy tylko wyrazy równe 0. W tabelce zaznaczyliśmy pierwsze wyrazy odpowiednio: ciągu kwadratów i 2 0 ciągu różnic pierwszego rzędu r 1i 1 ciągu różnic drugiego rzędu r 2i 2 Mając te trzy wartości możemy rekurencyjnie konstruować ciąg kolejnych kwadratów: a = 0, r 11 = 1, r 2 = 2, gdzie a 0 pierwszy wyraz ciągu kwadratów Dla i > 0 mamy: r 1i = r 1(i-1) + r 2 kolejna różnica pierwszego rzędu powstaje z poprzedniej przez dodanie różnicy drugiego rzędu a i = a i-1 + r 1i kolejny kwadrat powstaje z poprzedniego przez dodanie wyliczonej różnicy pierwszego rzędu Zwróć uwagę, iż wykorzystujemy tylko dodawanie, dzięki czemu nasz algorytm jest szybki. Jednakże podany algorytm nie jest stosowany w praktyce do wyznaczania wartości pierwiastka kwadratowego. Podajemy go tutaj tylko ze względów dydaktycznych.
39 ALGORYTM OBLICZANIA CAŁKOWITEGO PIERWIASTKA KWADRATOWEGO WERSJA NR 1 Wejście x liczba, której pierwiastek obliczamy, x 0, x ϵ R Wyjście: całkowity pierwiastek kwadratowy z x Elementy pomocnicze: i numery wyrazów ciągu kwadratów, i ϵc a wyraz ciągu kwadratów, a ϵ C r 1 różnica pierwszego rzędu, r 1 ϵ N r 2 różnica drugiego rzędu, r 2 ϵ N
40 Lista kroków: K01: a 0 ; pierwszy kwadrat 0 2 K02: r 1 1 ; początkowa wartość różnicy pierwszego rzędu K03: r 2 2 ; wartość różnic drugiego rzędu K04: i 0 ; numer pierwszego wyrazu K05: Dopóki a x wykonuj K06...K 08 ; szukamy pierwszego wyrazu a większego od x K06: a a + r 1 ; następny kwadrat K07: r 1 r 1 + r 2 ; wyliczamy nową różnicę pierwszego rzędu K08: i i + 1 ; następny numer K09: Zakończ z wynikiem i - 1 ; obliczamy pierwiastek całkowity
41 W pierwszym wierszu program odczytuje liczbę x. Następnie wyznacza jej całkowity pierwiastek kwadratowy i wypisuje go w wierszu drugim. Dodatkowo w wierszu trzecim program wypisuje kwadrat znalezionego pierwiastka kwadratowego dla celów porównawczych.
42 ROZWIĄZANIE NR 2 Druga metoda znajdowania całkowitego pierwiastka kwadratowego pochodzi od Izaaka Newtona (chociaż podobną metodę stosowali już starożytni Babilończycy). Jeśli mamy pewne przybliżenie p pierwiastka liczby x, to lepsze przybliżenie otrzymamy stosując wzór: p = 1/2 (p + x /p)
43 DLACZEGO TO DZIAŁA? ROZWAŻMY DWA PRZYPADKI: p < x Wtedy iloraz x / p jest większy od x i po dodaniu go do p i podzieleniu sumy przez 2 otrzymamy liczbę większą od poprzedniego p, która przybliża się od dołu do rzeczywistego pierwiastka. p > x Wtedy iloraz x / p jest mniejszy od x i po dodaniu go do p i podzieleniu sumy przez 2 otrzymamy liczbę mniejszą od poprzedniego p, która przybliża się od góry do rzeczywistego pierwiastka. Wynika z tego, iż w każdej iteracji otrzymujemy liczbę coraz bliższą wartości pierwiastka. Iterujemy dotąd, aż różnica pomiędzy dwoma kolejnymi przybliżeniami będzie mniejsza lub równa założonej dokładności ε w przypadku pierwiastków całkowitych jest to 1.
44 ALGORYTM OBLICZANIA CAŁKOWITEGO PIERWIASTKA KWADRATOWEGO WERSJA NR 2 Wejście x liczba, której pierwiastek obliczamy, x 0, xϵ C Wyjście: Całkowity pierwiastek kwadratowy z x Elementy pomocnicze: p 1, p 2 kolejne przybliżenia pierwiastka z x; p 1, p 2 ϵ C
45 Lista kroków: K01: Jeśli x > 1, to idź do K04 ; pierwiastki > 1 liczymy K02: p 2 x ; inne nie K03: Idź do K09 K04: p 1 0 ; zapewniamy p 1 - p 2 > 1 K05: p 2 x shr 1 ; pierwsze przybliżenie pierwiastka K06: Dopóki p 1 - p 2 > 1, wykonuj K07...K08 ; w pętli wyliczamy kolejne przybliżenia K07: p 1 p 2 ; zapamiętujemy bieżące przybliżenie K08: p 2 (p 2 + x div p 1 ) shr 1 ; wyliczamy nowe przybliżenie K09: Dopóki p 2 p 2 > x, wykonuj p 2 p 2-1 ; jeśli przybliżenie było od góry, zmniejszamy je K09: Zakończ z wynikiem p 2
46 W pierwszym wierszu program odczytuje liczbę x. Następnie wyznacza jej całkowity pierwiastek kwadratowy i wypisuje go w wierszu drugim. Dodatkowo w wierszu trzecim program wypisuje kwadrat znalezionego pierwiastka kwadratowego dla celów porównawczych.
47 ROZWIĄZANIE NR 3 Istnieje bardzo szybki algorytm wyznaczania wartości całkowitego pierwiastka kwadratowego, który wykorzystuje binarną reprezentację liczb czyli idealnie nadaje się do zastosowania dla danych komputerowych, które przecież są liczbami binarnymi. Algorytm wywodzi się z chińskiego abakusa i nie wymaga skomplikowanych działań arytmetycznych jedynie dodawania oraz przesuwania bitów. Dzięki tym zaletom może być z powodzeniem stosowany w prostych systemach mikrokontrolerów jednoukładowych.
48 ALGORYTM OBLICZANIA CAŁKOWITEGO PIERWIASTKA KWADRATOWEGO WERSJA NR 3 Wejście: x liczba, której pierwiastek obliczamy, x 0, x ϵ C Wyjście: Całkowity pierwiastek kwadratowy z x Elementy pomocnicze: m b zawiera maskę bitową z ustawionym jednym bitem. Maska jest 64 bitowa. p x obliczana wartość pierwiastka, p x ϵc
49 Lista kroków: K01: p x 0 ; początkowa wartość pierwiastka K02: m b 1 shl 62 ; maska z ustawionym drugim najstarszym bitem K03: Dopóki m b > x, wykonuj m b m b shr 2 ; szukamy najstarszej potęgi 4, mniejszej od x K04: Dopóki m b 0, wykonuj K05...K09 ; wyznaczamy kolejne bity pierwiastka K05: t p x + m b ; łączymy bit maski z przybliżeniem pierwiastka K06: Jeśli x < t, idź do K09 ; sprawdzamy, czy dany bit ma być ustawiony. K07: x x - t ; usuwamy bity z x K08: p x t + m b ; dodajemy bit maski do p x K09: p x p x shr 1 ; przesuwamy bity pierwiastka o 1 w prawo K09: m b m b shr 2 ; bity maski przesuwamy o 2 w prawo K10: Zakończ z wynikiem p x
50 W pierwszym wierszu program odczytuje liczbę x. Następnie wyznacza jej całkowity pierwiastek kwadratowy i wypisuje go w wierszu drugim. Dodatkowo w wierszu trzecim program wypisuje kwadrat znalezionego pierwiastka kwadratowego dla celów porównawczych.
Liczby całkowite i rzeczywiste
Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy
Bardziej szczegółowoProblem W przedziale całkowitym <a,b> wyszukaj wszystkie liczby parzyste.
Problem W przedziale całkowitym wyszukaj wszystkie liczby parzyste. Liczby parzyste W wielu algorytmach musimy wygenerować liczby parzyste z zadanego przedziału liczb całkowitych. Tego typu
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoLuty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Bardziej szczegółowoIteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
Bardziej szczegółowoWYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz
WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE Bartosz Łakomy i Dariusz Dobiesz SPIS TREŚCI: Liczby parzyste i nieparzyste Liczby podzielne lub niepodzielne przez zadane podzielniki NWD algorytm
Bardziej szczegółowoB.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:
Dodawanie dwójkowe Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną. W systemie binarnym mamy tylko dwie cyfry 0 i 1, zatem tabliczka
Bardziej szczegółowodo instrukcja while (wyrażenie);
Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie
Bardziej szczegółowoDr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik
Bardziej szczegółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowo1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące
Bardziej szczegółowoZadania do samodzielnego rozwiązania
Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową
Bardziej szczegółowoLISTA 5. C++ PETLE for, while, do while
WSTEP DO INFORMATYKI I PROGRAMOWANIA LISTA 5. C++ PETLE for, while, do while Zadanie. Przeanalizuj działanie poniższego programu. cout
Bardziej szczegółowoAlgorytmy w teorii liczb
Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
Bardziej szczegółowoPlan wynikowy z wymaganiami edukacyjnymi z matematyki w zakresie podstawowym dla klasy 1 zsz Katarzyna Szczygieł
Plan wynikowy z wymaganiami edukacyjnymi z matematyki w zakresie podstawowym dla klasy 1 zsz Katarzyna Szczygieł Lp. Temat Kształcone umiejętności 1 Zasady pracy na lekcjach matematyki. Dział I. LICZBY
Bardziej szczegółowo1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Bardziej szczegółowoPrzykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Bardziej szczegółowoWHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Bardziej szczegółowoZadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Bardziej szczegółowoWHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Bardziej szczegółowo1. LICZBY DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia
L.P. DZIAŁ Z PODRĘCZNIKA NaCoBeZu kryteria sukcesu w języku ucznia 1. LICZBY 1. Znam pojęcie liczby naturalne, całkowite, wymierne, dodatnie, ujemne, niedodatnie, odwrotne, przeciwne. 2. Potrafię zaznaczyć
Bardziej szczegółowoWYMAGANIA NA POSZCZEGÓLNE OCENY MATEMATYKA KL.VII
WYMAGANIA NA POSZCZEGÓLNE OCENY MATEMATYKA KL.VII ROZDZIAŁ I LICZBY 1. rozpoznaje cyfry używane do zapisu liczb w systemie rzymskim w zakresie do 3000 2. odczytuje liczby naturalne dodatnie zapisane w
Bardziej szczegółowowagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Bardziej szczegółowoLiczby. Wymagania programowe kl. VII. Dział
Wymagania programowe kl. VII Dział Liczby rozpoznaje cyfry używane do zapisu liczb w systemie rzymskim w zakresie do 3000 odczytuje liczby naturalne dodatnie zapisane w systemie rzymskim w zakresie do
Bardziej szczegółowoPętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2
Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń
Bardziej szczegółowoWymagania edukacyjne z matematyki w klasie VII szkoły podstawowej
Wymagania edukacyjne z matematyki w klasie VII szkoły podstawowej ROZDZIAŁ I LICZBY Uczeń otrzymuje ocenę dopuszczającą jeśli: 1. rozpoznaje cyfry używane do zapisu liczb w systemie rzymskim w zakresie
Bardziej szczegółowoMatematyka z kluczem. Szkoła podstawowa nr 18 w Sosnowcu. Przedmiotowe zasady oceniania klasa 7
Matematyka z kluczem Szkoła podstawowa nr 18 w Sosnowcu Przedmiotowe zasady oceniania klasa 7 KlasaVII wymagania programowe- wymagania na poszczególne oceny ROZDZIAŁ I LICZBY 1. rozpoznaje cyfry używane
Bardziej szczegółowoWYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA VII
WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA VII Ocena Dopuszczający Osiągnięcia ucznia rozpoznaje cyfry używane do zapisu liczb w systemie rzymskim w zakresie do 3000 odczytuje liczby naturalne dodatnie zapisane
Bardziej szczegółowo4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.
Jarosław Wróblewski Matematyka dla Myślących, 008/09. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. 15 listopada 008 r. Uwaga: Przyjmujemy,
Bardziej szczegółowoAlgorytm i złożoność obliczeniowa algorytmu
Algorytm i złożoność obliczeniowa algorytmu Algorytm - przepis postępowania, którego wykonanie prowadzi do rozwiązania określonego problemu określa czynności, jakie należy wykonać wyszczególnia wszystkie
Bardziej szczegółowoArytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
Bardziej szczegółowoObliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Bardziej szczegółowo2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoZadanie 1. Algorytmika ćwiczenia
Zadanie 1 Algorytmika ćwiczenia Zadanie 2 Zadanie 3 Zadanie 4 Zadanie 5 Zadanie 6 Zadanie 7 Wiązka zadań Ułamki dwójkowe W systemach pozycyjnych o podstawie innej niż 10 można zapisywać nie tylko liczby
Bardziej szczegółowoZadanie 1. Potęgi (14 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,
Bardziej szczegółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoProgramowanie w Baltie klasa VII
Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.
Bardziej szczegółowoMetody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.
Ćwiczenia nr 2 metody połowienia, regula falsi i siecznych. Sformułowanie zagadnienia Niech będzie dane równanie postaci f (x) = 0, gdzie f jest pewną funkcją nieliniową (jeżeli f jest liniowa to zagadnienie
Bardziej szczegółowoKatarzyna Bereźnicka Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych. Opiekun stypendystki: mgr Jerzy Mil
Katarzyna Bereźnicka Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych Opiekun stypendystki: mgr Jerzy Mil 1 Działania na ułamkach Wyłączanie całości z dodatnich ułamków niewłaściwych Formuła
Bardziej szczegółowoWstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoWymagania edukacyjne z matematyki dla klasy 7 na podstawie planu wynikowego z rozkładem materiału
Wymagania edukacyjne z matematyki dla klasy 7 na podstawie planu wynikowego z rozkładem materiału Lp. Temat lekcji Punkty z podstawy programowej z dnia 1 lutego 2017 r. Wymagania podstawowe Wymagania ponadpodstawowe
Bardziej szczegółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoFunkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
Bardziej szczegółowoProgramowanie dynamiczne
Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem
Bardziej szczegółowoZADANIE 1. Ważenie (14 pkt)
ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowoMatematyka dyskretna
Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 2 marca 2017 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod m)),
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowo1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
Bardziej szczegółowoMatematyka z kluczem. Plan wynikowy z rozkładem materiału Klasa 7
Matematyka z kluczem Plan wynikowy z rozkładem materiału Klasa 7 Matematyka z kluczem Plan wynikowy z rozkładem materiału Klasa 7 Temat lekcji Punkty z podstawy programowej Lp. Wymagania podstawowe Wymagania
Bardziej szczegółowoMatematyka z kluczem. Plan wynikowy z rozkładem materiału Klasa 7
Matematyka z kluczem Plan wynikowy z rozkładem materiału Klasa 7 Matematyka z kluczem Plan wynikowy z rozkładem materiału Klasa 7 Temat lekcji Punkty z podstawy programowej Lp. Wymagania podstawowe Wymagania
Bardziej szczegółowoRekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Bardziej szczegółowoLICZBY PIERWSZE. Jan Ciurej Radosław Żak
LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna
Bardziej szczegółowoWymagania edukacyjne z matematyki na poszczególne do klasy VII szkoły podstawowej na rok szkolny 2018/2019
Wymagania edukacyjne z matematyki na poszczególne do klasy VII szkoły podstawowej na rok szkolny 2018/2019 LICZBY Uczeń otrzymuje ocenę dopuszczającą, jeśli: rozpoznaje cyfry używane do zapisu liczb w
Bardziej szczegółowoWstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Bardziej szczegółowoWykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Bardziej szczegółowoMetody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
Bardziej szczegółowo1. Liczby naturalne, podzielność, silnie, reszty z dzielenia
1. Liczby naturalne, podzielność, silnie, reszty z dzielenia kwadratów i sześcianów przez małe liczby, cechy podzielności przez 2, 4, 8, 5, 25, 125, 3, 9. 26 września 2009 r. Uwaga: Przyjmujemy, że 0 nie
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Bardziej szczegółowoWYMAGANIA EDUKACYJNE Z MATEMATYKI dla klasy I ba Rok szk. 2012/2013
Dział LICZBY RZECZYWISTE Uczeń otrzymuje ocenę dopuszczającą lub dostateczną, jeśli: podaje przykłady liczb: naturalnych, całkowitych, wymiernych, niewymiernych, pierwszych i złożonych oraz przyporządkowuje
Bardziej szczegółowoSortowanie przez wstawianie Insertion Sort
Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,
Bardziej szczegółowoArytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,
Arytmetyka Magdalena Lemańska System dziesiętny System dziesiętny Weźmy liczbę 178. Składa się ona z jednej setki, siedmiu dziesiątek i ośmiu jedności. System dziesiętny System dziesiętny Weźmy liczbę
Bardziej szczegółowoI. Podstawy języka C powtórka
I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.
Bardziej szczegółowoSamodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoPRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ POZIOM ROZSZERZONY Część I
Organizatorzy: Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki, Oddział Kujawsko-Pomorski Polskiego Towarzystwa Informatycznego, Ośrodek Doskonalenia Nauczycieli w Poznaniu, Centrum
Bardziej szczegółowoLiczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1
Robert Malenkowski 1 Liczby rzeczywiste. 1 Liczby naturalne. N {0, 1,, 3, 4, 5, 6, 7, 8...} Liczby naturalne to liczby używane powszechnie do liczenia i ustalania kolejności. Liczby naturalne można ustawić
Bardziej szczegółowoOperacje arytmetyczne
PODSTAWY TEORII UKŁADÓW CYFROWYCH Operacje arytmetyczne Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Dodawanie dwójkowe Opracował: Andrzej Nowak Ostatni wynik
Bardziej szczegółowoPodstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
Bardziej szczegółowoCIĄGI wiadomości podstawowe
1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie
Bardziej szczegółowoSortowanie Shella Shell Sort
Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu
Bardziej szczegółowoProjekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Biotechnologia w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt Era inżyniera
Bardziej szczegółowoWymagania edukacyjne niezbędne do uzyskania rocznych ocen klasyfikacyjnych z matematyki w klasie VII.
Przedmiotowy system oceniania z matematyki w klasie VII. Ocena roczna Wyróżniono następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i wykraczające poza
Bardziej szczegółowoPzetestuj działanie pętli while i do...while na poniższym przykładzie:
Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Zadania pętla while i do...while: 1. Napisz program, który wczytuje od użytkownika liczbę całkowitą, dopóki podana liczba jest mniejsza
Bardziej szczegółowoKonstrukcje warunkowe Pętle
* Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity
Bardziej szczegółowoJarosław Wróblewski Matematyka Elementarna, zima 2015/16
Na ćwiczeniach 6.0.205 omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest liczbą naturalną, tzn. liczby naturalne są to liczby całkowite dodatnie.. Sformułować uogólnione cechy podzielności
Bardziej szczegółowoTransponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy
Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy Problem Transponować macierz A m n na A T n m. Operacja transponowania macierzy polega na zamianie wierszy w kolumny i
Bardziej szczegółowo1 Metody rozwiązywania równań nieliniowych. Postawienie problemu
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie
Bardziej szczegółowoWybrane zagadnienia teorii liczb
Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja
Bardziej szczegółowoInstrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.
Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres
Bardziej szczegółowoAkademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 2017/18. Informatyka Etap III
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 017/18 Informatyka Etap III Zadania po 17 punktów Zadanie 1 Dla pewnej N-cyfrowej liczby naturalnej obliczono
Bardziej szczegółowoSystemy zapisu liczb.
Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:
Bardziej szczegółowoWYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VII SZKOŁY PODSTAWOWEJ
WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VII SZKOŁY PODSTAWOWEJ Ocenę niedostateczną otrzymuje uczeń, jeśli nie opanował wiadomości i umiejętności na ocenę dopuszczającą, nie wykazuje chęci poprawy
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Problemy algorytmiczne Klasy problemów algorytmicznych Liczby Fibonacciego Przeszukiwanie tablic Największy
Bardziej szczegółowoKodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)
Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, 19.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)
Bardziej szczegółowoWymagania dla klasy siódmej. Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY
Wymagania dla klasy siódmej Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY Rzymski sposób zapisu liczb Liczby pierwsze i złożone. Dzielenie z resztą Rozwinięcia dziesiętne
Bardziej szczegółowoPrzedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony
Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony Wymagania konieczne (K) dotyczą zagadnień elementarnych, stanowiących swego rodzaju podstawę, zatem
Bardziej szczegółowoKod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:
Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Bardziej szczegółowo2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.
ZAKRES ROZSZERZONY 1. Liczby rzeczywiste. Uczeń: 1) przedstawia liczby rzeczywiste w różnych postaciach (np. ułamka zwykłego, ułamka dziesiętnego okresowego, z użyciem symboli pierwiastków, potęg); 2)
Bardziej szczegółowoCzas pracy: 60 minut
EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 INFORMATYKA POZIOM ROZSZERZONY ARKUSZ I PRZYKŁADOWY ZESTAW ZADAŃ DLA OSÓB SŁABOSŁYSZĄCYCH (A3) WYBRANE:... (środowisko)... (kompilator)... (program użytkowy)
Bardziej szczegółowo