Największy wspólny dzielnik dwóch liczb naturalnych ALGORYTM EUKLIDESA
|
|
- Karolina Skiba
- 7 lat temu
- Przeglądów:
Transkrypt
1 Największy wspólny dzielnik dwóch liczb naturalnych ALGORYTM EUKLIDESA Algorytm opisany w Księdze VII Elementów Euklidesa z III wieku p.n.e. pozwala szybko znaleźć nwd(a,b) - największy wspólny dzielnik dwóch liczb naturalnych a i b. a dla a = b nwd( a, b) = nwd( a b, b ) dla a > b lub nwd( a, b a) dla a < b dopóki a róŝne od b jeŝeli a>b to a=a-b w przeciwnym razie b=b-a zwróć a Ten algorytm nie jest optymalny, zwłaszcza gdy a i b róŝnią się znacznie, np. a = i b = 10. A oto szybszy alogorytm, który zamiast odejmowania wykorzystuje operację dzielenia modulo : a dla b = 0 nwd ( a, b) = nwd( b, a mod b ) dla b >= 1 gdzie: mod operator dzielenia modulo; wynikiem jego działania jest reszta z dzielenia a przez b, na przykład 19 mod 7 = 5 Przykład: nwd(16,12) = nwd(12,4) = nwd(4,0) = 4 - funkcja nwd jest wywoływana 3 razy: Napisz ciąg wywołań funkcji rekurencyjnej nwd(a,b) i podaj ile razy wywołano funkcję nwd : a) dla danych a=56 i b=72 Odp: 4 wywołania, nwd=8 b) dla danych a=76 i b=56 Odp: 5 wywołań, nwd=4 c) Podaj iteracyjny przepis funkcji nwd(a,b) z dzieleniem modulo: Odp: dopóki (b>0) r a mod b a b b r zwróć a Istnieje jeszcze szybsza wersja algorytmu Euklidesa: binary GCD, która zamiast zwykłych operacji dzielenia wykorzystuje przesunięcia bitowe przy dzieleniu i mnoŝeniu przez 2: 1. jeŝeli a i b są parzyste, to NWD(a, b) = 2*NWD( a / 2, b / 2 ) 2. dopóki b>0 powtarzaj jeŝeli a jest parzysta i b jest nieparzysta, to NWD(a, b) = NWD( a / 2, b) zaś jeŝeli a jest nieparzyste a b jest parzyste, to NWD(a, b) = NWD(a, b / 2 ) jeŝeli a i b są nieparzyste, to gdy a>b to NWD(a, b) = NWD( (a b) / 2, b) zaś gdy a<b, to NWD(a, b) = NWD(a,( (b-a) / 2 ). 3. zwróć a*2 k, gdzie k jest liczbą wspólnych czynników 2 wyeliminowanych w kroku 1.
2 ROZSZERZONY ALGORYTM EUKLIDESA Największy wspólny dzielnik moŝna przedstawić w postaci zaleŝności liniowej od a i b: nwd(a,b) = x*a + y*b gdzie x i y są współczynnikami o wartościach całkowitych (niekoniecznie dodatnich) Przykład: nwd(45,35) = 5 = -3*45 + 4*35 tu: x=-3 i y=4 nwd(45,35) = nwd(35,10) = nwd(10,5) = nwd(5,0) = 5 ZauwaŜ: = 1 reszty 10 tzn. 10 = 45 1*35 oraz = 3 reszty 5 tzn. 5 = 35 3* Zbierzmy to razem od końca: 5 = 35 3*10 = 35 3*(45-1*35) = 35 3*45 + 3*35 = -3*45 + 4*35 Rozszerzony algorytm Euklidesa pozwala łatwo znaleźć nie tylko nwd(a,b), ale takŝe współczynniki x,y zaleŝności liniowej x*a+y*b dzieki temu, Ŝe przechowuje w kolejnych iteracjach nie tylko resztę z dzielenia: r = a mod b, ale takŝe wynik dzielenia całkowitego: iloraz q = a div b gdzie div operator dzielenia cakowitego. Współczynniki x, y w i-tej iteracji Rozrzeszonego Algorytmu Euklidesa opisane są zaleŝnościami: xi = xi yi = yi 2 2 q * x q * y i 1 x, y przyjmują zawsze wartości początkowe (dla iteracji i=0): i 1 krok (-2): x 2 = 1 y 2 = 0 krok (-1): x y 1 1 = 0 1 = Ostateczne wartości x,y otrzymujemy w tym kroku iteracji, który zawiera ostatnią niezerową wartość reszty z dzielenia a mod b. Przykład dla a=45 i b=35 i a=45 b=35 r = a mod b q = a div b x = x i-2 q*x i-1 y = y i-2 q*y i *0 = 1 0 1*1 = *1 = -3 to jest wynik x to jest wynik nwd ZaleŜność liniowa: nwd(45,35) =..5.. = -3.. * * 35 nwd x a y b 1 3*(-1) = 4 to jest wynik y
3 Zadanie: znajdź nwd(a,b) i jego zaleŝność liniową od a,b dla danych: a=20 i b=13 Uzupełnij zacienione komórki w tabeli i formułę znajdującą się poniŝej tabeli: a b r = a mod b q = a div b x = x i-2 q*x i-1 y = y i-2 q*y i tu jest wynik x tu jest wynik y tu wynik nwd Twoja zaleŝność liniowa: nwd(20,13) =.... =.. * * 13 Odp: nwd(20,13) = 1 = 2*20 3*13 Zadanie : Napisz i uruchom program, który pobiera dwie liczby naturalne a,b a następnie oblicza i zwraca wartość nwd(a,b) oraz wartości współczynników x,y zaleŝności nwd(a,b)=x*a + y*b. czytaj a,b; x2 1 x1 0 y2 0 y1 1 dopóki (b>0) r a mod b q a div b jeŝeli r>0 a b x x2 q*x1 y y2 q*y1 x2 x1 x1 x y2 y1 y1 y b r pisz nwd= a x= x1 y= y1 czerwoną czcionką napisano to, co stanowi rozszerzenie zwykłego algorytmu Euklidesa
4 Zastosowania Rozszerzonego Algorytmu Euklidesa I. Lanie wody Równanie diofantyczne liniowe: x*a + y*b = k gdzie dane są liczby całkowite: a,b,k, jest to równanie, którego rozwiązania: x,y szuka się w dziedzinie liczb całkowitych. Rozwiązanie istnieje tylko wtedy, gdy największy wspólny dzielnik nwd(a,b) jest także dzielnikiem liczby k. Problem można interpretować następująco: Masz dużą kadź oraz dwa mniejsze naczynia o pojemnościach a i b. Aby umieścić w kadzi dokładnie k litrów wody za pomocą naczyń a i b,odmierzysz wodę x razy naczyniem o pojemności a, oraz y razy drugim naczyniem, o pojemności b. Kadź uda się napełnić żądaną objętością k litrów wody przy pomocy naczyń a,b tylko wówczas, gdy nwd(a,b) jest także podzielnikiem liczby k. Przykład: 1) dla danych: a=5, b=7, k=3 istnieje rozwiązanie: x=2, y=-1 2) dla danych: a=4, b=10, k=15 nie ma rozwiązania. Zwykły algorytm Euklidesa pomoże rozstrzygnąć problem: czy w ogóle uda się odmierzyć k litrów naczyniami a i b. Jeżeli tak to rozszerzony algorytm Euklidesa dostarczy informacji o tym ile razy trzeba użyć naczynia a i ile razy użyć naczynia b, rozwiazaniem będą (współczynniki x,y). Ale często nie będzie to rozwiązanie optymalne z punktu widzenia praktycznego. Chciałoby się jak najmniej razy machać tymi naczyniami, to znaczy: aby liczba operacji nalewania i wylewania wody: x + y była minimalna. Przykład: odmierz 9 litrów przy pomocy naczyń: 12 i 21 litrowych. Rozszerzony algorytm Euklidesa zaproponuje: 6*12 + (-3)*21 = 9, razem 6+3=9 operacji ale przecież można prościej: 1*21 + (-1)*12 = 9, wystarczą 2 operacje. Pozostaje także problem jak duża musi być kadź. Zauważ że jeden ze współczynników (x,y) może być ujemny, to znaczy musisz zabrać z kadzi a lub b litrów wody uprzednio nalanej. Kadź musi więc być odpowiednio duża, często większa od żądanej objętości k. Jaka jest potrzebna minimalna pojemność kadzi? Zadanie: W jaki sposób napełnić kadź dwoma litrami wody k=2, posługując się naczyniami o pojemnościach a=5 i b=7 litrów tak, aby w trakcie napełniania kadzi ilość zawartej w niej wody była jak najmniejsza? Jaką co najmniej pojemność musi mieć kadź?
5 // program: napełnianie kadzi int A,B,k; // A,B naczynia, k - kadź cout<<"ile nalac? "; cin>>k; cout<<"jakie naczynia a,b? "; cin>>a>>b; int a=a, b=b; int x, x1=0, x2=1; int y, y1=1, y2=0; int r,q; while (b>0) { r=a%b; q=a/b; if (r>0) { x=x2-q*x1; y=y2-q*y1; x2=x1; x1=x; y2=y1; y1=y; a=b; b=r; cout<<"nwd="<<a<<"=x*a+y*b="<<x<<"*"<<a<<" + "<<y<<"*"<<b <<endl<<endl; if (k%a!=0) cout<<"nie da się nalać "<<k<<" litrow tymi naczyniami\n"; else { cout<<"\n napelnic kadz mozna tak:\n"; int q=k/a; cout<<a<<"*"<<x*q<<" + "<<B<<"*"<<y*q<<endl; cout<<"\n ale moŝna i tak:\n"; int w=0; // bieŝący stan napełnienia kadzi while (w!=k) { if (w<k) { // jeŝeli w kadzi jest za mało if (k-w ==A) {w=w+a; cout<<" wlej "<<A<<" w="<<w<<endl; else if (k-w ==B) {w=w+b; cout<<" wlej "<<B<<" w="<<w<<endl; else { if (A>B) {w=w+a; cout<<" wlej "<<A<<" w="<<w<<endl; else {w=w+b; cout<<" wlej "<<B<<" w="<<w<<endl; else { // jeŝeli w kadzi jest za duŝo if (k-w ==-A) {w=w-a; cout<<" odlej "<<A<<" w="<<w<<endl; else if (k-w ==-B) {w=w-b; cout<<" odlej "<<B<<" w="<<w<<endl; else { if (A<B) {w=w-a; cout<<" odlej "<<A<<" w="<<w<<endl; else {w=w-b; cout<<" odlej "<<B<<" w="<<w<<endl;
6 II. Rozszerzony Algorytm Euklidesa przydaje się w kryptografii z zastosowaniem algorytmu RSA, do wyznaczenia klucza prywatnego gdy znamy składniki klucza publicznego. Kodowanie RSA: szyfrowanie: ( dana e ) mod n gdzie (n,e) klucz publiczny deszyfrowanie: ( szyfr d ) mod n Najpierw wybiera się klucz publiczny (n,e), jawny, służący do szyfrowania: gdzie (n,d) klucz prywatny Wybieramy dwie liczby pierwsze, na przykład: p = 7 i q = 11. Ich iloczyn: n = p*q = 77 Wyznaczamy Φ =(p -1)(q -1) = 6 *10 = 60. Wybieramy liczbę e względnie pierwszą z Φ, czyli taką że nwd(φ,e)=1, na przykład e = 13. Klucz publiczny: (77,13) Następnie wyznacza się klucz prywatny (n,d), tajny, służący do odszyfrowania: Szukamy d takiego, Ŝe d*e 1 (mod Φ) czyli w naszym przykładzie: d * 13 1 (mod 60) Rozszerzony Algorytm Euklidesa NWD(Φ,e) zwróci nam parę współczynników (x,y). Jeśli argumenty NWD są liczbami wzglednie pierwszymi, to (x,y) są są odwrotnościami modularnymi argumentów funkcji NWD(Φ,e) : Odwrotność modulo: x jest odwrotnością modulo b liczby a, NWD(Φ,e) = 1 = x*φ + y*e to znaczy: (x*a) mod b =1, Liczby Φ, e są względem siebie pierwsze, więc w innym zapisie x * a 1(mod b) y*e 1 (mod Φ), co oznacza Ŝe znaleziona wartość y odpowiada d = y Φ e q=φ /e Φ =e e =Φ mod e x -2 x -1 = x i-2 q*x i-1 y -2 y -1 = y i-2 q*y i Sprawdźmy: nwd(φ,e) = x*φ + y*e = 5*60 + (-23)*13 = 1 Współczynnik y ma wartość ujemną. RównowaŜne mu będą wszystkie wartości róŝniące się o Φ=60, względem którego liczymy modulo: 13 * (-23) 1 mod * (60-23) 1 mod * 37 1 mod 60 czyli d = 37. Klucz prywatny (77,37). Podanym kluczem moŝna szyfrować liczby o wartości mniejszej od n=77.
7 NaleŜy utajnić wszelką informację o uŝytych liczbach p i q : 7 i 11, poniewaŝ znając te liczby łatwo moŝna wyznaczyć klucz prywatny. Cała trudność złamania szyfru RSA opiera się na trudności rozkładu liczby n na iloczyn liczb pierwszych p i q w realnym czasie (gdy wartość n jest dostatecznie duŝa) Zadanie : Dany jest klucz publiczny (e,n): n=91 oraz e=5. Wyznacz brakującą liczbę d w kluczu prywatnym: wyznacz dwie liczby pierwsze : p i q takie Ŝe n=p*q Rozwiązanie - na przykład: p=13 i q=7) dobierz liczbę d wiedząc Ŝe d jest odwrotnością modulo Φ liczby e, czyli d * e 1 (mod Φ) Wskazówka: zastosuj Rozszerzony Algorytm Euklidesa dla nwd(φ,e) i przypisz d y Rozwiązanie: Φ=(p-1)*(q-1)= (13-1)*(7-1)=12*6=72 Φ e r = Φ mod e q = Φ div e y = y i-2 q*y i to jest wynik d Rozwiazanie: Klucz prywatny (d,n) = (29,91), wartość liczby deszyfrujacej d=29 Podczas szyfrowania RSA natrafiamy na problem bardzo dużych liczb jako wyników potęgowania. Można go uniknąć, bo potrzebna jest tylko potęga modulo n, co wcale nie musi być dużą liczbą. h = a e mod n można rozpisać jako h = ((a mod n) * a mod n)... * a mod n I jeszcze usprawnić algorytm. Pamiętasz sprytny algorytm szybkiego potęgowania (dla wykładników naturalnych)? Wykorzystywał on właściwość b a = ( a funkcja potęga(a, b) // wersja rekurencyjna jeŝeli b = 0 zwróć 1 jeŝeli b jest nieparzysta zwróć a*potęga(a, n-1) w przeciwnym przypadku a = potęga(a, b/2) zwróć a 2 z potęgowaniem modulo jest podobnie: b 2 ) 2 funkcja potegamodulo (a, b, n ) // wersja iteracyjna wynik =1; dopóki (b>0) { jeŝeli (b nieparzyste) wynik = (wynik*a) mod n; a = (a*a) mod n; b = b/2; zwróć wynik; funkcja potega(a,b) // wersja iteracyjna: wynik=1; x=a; dopóki (b>0) jeŝeli (b nieparzyste) wynik *= x; b -- w przeciwnym razie x *= x b = b/2 zwróć wynik
8 Zadanie Zastosuj klucz publiczny z poprzedniego zadania do zaszyfrowania słowa DEMOTYWATOR. Zaszyfruj osobno każdy znak tego słowa (biorąc jako daną źródłową kod ASCII znaku). Wyświetl (lub zapisz w pliku) ciąg liczb będących wynikiem szyfrowania. Nastepnie zdeszyfruj otrzymany ciąg liczb przy pomocy klucza prywatnego z poprzedniego zadania. Kolejne zdeszyfrowane liczby potraktuj jako kody ASCII i wyświetl ich reprezentację znakową. Mam nadzieję że otrzymasz z powrotem słowo DEMOTYWATOR int potegamodulo(int a, int b, int c) { int r=1; while (b>0) { if (b%2!= 0) r=(r*a)%c; a=(a*a)%c; b=b/2; return r; int main() { string s="demotywator"; int ns=s.length(); int n=77; // nie moŝesz szyfrować liczb większych od n int e=13; // klucz publiczny (77,13) int d=37; // klucz prywatny (77,37) int T[20]; // tablica przechowuje liczby po zaszyfrowaniu for (int i=0; i<ns; i++) { ponieważ najmniejszy kod (litera A) ma wartość 65, odejmuję 64 od int kod = (int)s[i]-64; wszystkich kodów aby uzyskać mniejsze liczby do szyfrowania // szyfrowanie: (kod^e) % n int zasz = potegamodulo(kod,e,n); cout<<s[i]<<" "<<kod<<" "<<zasz<<" "<<endl; T[i]=zasz; cout<<endl<<endl; for (int i=0; i<ns; i++) { int z = T[i]; // deszyfrowanie: (z^d) % n int odsz = potegamodulo(z,d,n); char znak = (char)(odsz+64); cout<<znak<<" "<<odsz<<endl; cout<<endl<<endl; system("pause"); return EXIT_SUCCESS;
Wybrane 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ół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ół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ółowoKryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5
Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 5 Spis treści 9 Algorytmy asymetryczne RSA 3 9.1 Algorytm RSA................... 4 9.2 Szyfrowanie.....................
Bardziej szczegółowoZastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA
Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Grzegorz Bobiński Uniwersytet Mikołaja Kopernika Toruń, 22.05.2010 Kodowanie a szyfrowanie kodowanie sposoby przesyłania danych tak, aby
Bardziej szczegółowoALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:
ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu
Bardziej szczegółowo0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.
(Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)
Bardziej szczegółowoINŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.
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ół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ół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ółowoLICZBY PIERWSZE. 14 marzec 2007. Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.
Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F. Gauss (1777-1855) 14 marzec 2007 Zasadnicze twierdzenie teorii liczb Zasadnicze twierdzenie teorii liczb Ile jest liczb
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ół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ółowoProste programy w C++ zadania
Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna
Bardziej szczegółowoKodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)
Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, 7.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ółowoJęzyk C zajęcia nr 5
Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego
Bardziej szczegółowo2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Bardziej szczegółowoZarys algorytmów kryptograficznych
Zarys algorytmów kryptograficznych Laboratorium: Algorytmy i struktury danych Spis treści 1 Wstęp 1 2 Szyfry 2 2.1 Algorytmy i szyfry........................ 2 2.2 Prosty algorytm XOR......................
Bardziej szczegółowoFUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;
Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana
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ółowoTeoria liczb. Magdalena Lemańska. Magdalena Lemańska,
Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,
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ółowoKryptologia przykład metody RSA
Kryptologia przykład metody RSA przygotowanie: - niech p=11, q=23 n= p*q = 253 - funkcja Eulera phi(n)=(p-1)*(q-1)=220 - teraz potrzebne jest e które nie jest podzielnikiem phi; na przykład liczba pierwsza
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ółowoLuty 2001 Algorytmy (8) 2000/2001
Algorytm Euklidesa Danymi są dwie nieujemne liczby całkowite m i n. Liczba k jest największym wspólnym dzielnikiem m i n, jeśli dzieli m oraz n i jest największą liczbą o tej własności - oznaczamy ją przez
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ółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowo1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)
1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji
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ół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ół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ółowoPodstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Bardziej szczegółowoKryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a
Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 6a Spis treści 10 Trochę matematyki (c.d.) 3 10.19 Reszty kwadratowe w Z p.............. 3 10.20
Bardziej szczegółowoKryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)
Kryptografia-0 -zachowanie informacji dla osób wtajemniczonych -mimo że włamujący się ma dostęp do informacji zaszyfrowanej -mimo że włamujący się zna (?) stosowaną metodę szyfrowania -mimo że włamujący
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ółowoMatematyka dyskretna
Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 24 lutego 2015 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod
Bardziej szczegółowoAlgorytmy i język C++
Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy
Bardziej szczegółowoZegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.
Rozgrzewka (Ci, którzy znają pojęcie kongruencji niech przejdą do zadania 3 bc i 4, jeśli i te zadania są za proste to proponuje zadanie 5): Zad.1 a) Marek wyjechał pociągiem do Warszawy o godzinie 21
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ółowoZadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.
2 Egzamin maturalny z informatyki Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie lub, która odpowiedź jest prawdziwa, a która fałszywa. a) rzeanalizuj poniższy algorytm (:= oznacza instrukcję
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ółowoRSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA
RSA Symetryczny system szyfrowania to taki, w którym klucz szyfrujący pozwala zarówno szyfrować dane, jak również odszyfrowywać je. Opisane w poprzednich rozdziałach systemy były systemami symetrycznymi.
Bardziej szczegółowoLaboratorium kryptograficzne dla licealistów 6
Laboratorium kryptograficzne dla licealistów 6 Projekt Matematyka dla ciekawych świata Łukasz Mazurek 11.05.2017 1 Potęgowanie W kryptografii często wykonuje się operację potęgowania modulo. Np. w algorytmie
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ół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ółowoALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Bardziej szczegółowoNajwiększy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach
Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) Chińskie twierdzenie o resztach Wybrane zagadnienia algorytmiki i programowania I 27 października 2010 Największy wspólny dzielnik - definicja
Bardziej szczegółowoTeoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych
Teoria liczb Zajmuje się własnościami liczb, przede wszystkim całkowitych Niepraktyczna? - kryptografia Dzielenie liczb całkowitych z resztą Niech b>0, wtedy dla każdej liczby całkowitej a istnieją jednoznacznie
Bardziej szczegółowoPodstawy systemów kryptograficznych z kluczem jawnym RSA
Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych
Bardziej szczegółowoAlgorytmy asymetryczne
Algorytmy asymetryczne Klucze występują w parach jeden do szyfrowania, drugi do deszyfrowania (niekiedy klucze mogą pracować zamiennie ) Opublikowanie jednego z kluczy nie zdradza drugiego, nawet gdy można
Bardziej szczegółowoCopyright by K. Trybicka-Francik 1
Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (2) Szyfry wykładnicze Pohlig i Hellman 1978 r. Rivest, Shamir i Adleman metoda szyfrowania z kluczem jawnym DSA (Digital Signature Algorithm)
Bardziej szczegółowoCopyright by K. Trybicka-Francik 1
Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (2) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Szyfry wykładnicze Pohlig i Hellman 1978 r. Rivest, Shamir i Adleman
Bardziej szczegółowoWstęp do Informatyki
Wstęp do Informatyki dr hab. Bożena Woźna-Szcześniak, prof. AJD bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 8 1 / 32 Instrukcje iteracyjne
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowon = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.
Wykład 2 Temat: Algorytm kryptograficzny RSA: schemat i opis algorytmu, procedura szyfrowania i odszyfrowania, aspekty bezpieczeństwa, stosowanie RSA jest algorytmem z kluczem publicznym i został opracowany
Bardziej szczegółowoInformatyka A. Algorytmy
Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................
Bardziej szczegółowoWYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
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ółowoWykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych
Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację
Bardziej szczegółowoSzyfrowanie RSA. Liczba pierwsza jest liczbą naturalną posiadającą dokładnie dwa różne podzielniki - 1 oraz samą siebie.
Szyfrowanie RSA Liczby pierwsze Na początek przypomnijmy sobie parę użytecznych wiadomości o liczbach pierwszych. Są one znane od starożytności a ich znaczenie jest ogromne w matematyce i tym bardziej
Bardziej szczegółowoMatematyka dyskretna
Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych
Bardziej szczegółowoEGZAMIN MATURALNY Z INFORMATYKI
ARKUSZ ZAWIERA INORMACJE RAWNIE CHRONIONE DO MOMENTU ROZOCZĘCIA EGZAMINU! Miejsce na naklejkę EGZAMIN MATURALNY Z INORMATYKI MIN-R1_1-092 MAJ ROK 2009 OZIOM ROZSZERZONY CZĘŚĆ I Czas pracy 90 minut Instrukcja
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoMADE IN CHINA czyli SYSTEM RESZTOWY
MADE IN CHINA czyli SYSTEM RESZTOWY System ten oznaczmy skrótem RNS (residue number system czyli po prostu resztowy system liczbowy). Wartość liczby w tym systemie reprezentuje wektor (zbiór) reszt z dzielenia
Bardziej szczegółowoWIELOMIANY I FUNKCJE WYMIERNE
WIELOMIANY I FUNKCJE WYMIERNE. RozwiąŜ nierówność.. Dla jakiej wartości parametru a R wielomian W() = ++ a dzieli się bez reszty przez +?. Rozwiązać nierówność: a) 5 b) + 4. Wyznaczyć wartości parametru
Bardziej szczegółowoElementy teorii liczb. Matematyka dyskretna
Elementy teorii liczb Matematyka dyskretna Teoria liczb dziedzina matematyki, zajmująca się badaniem własności liczb (początkowo tylko naturalnych). Jej początki sięgają starożytności. Zajmowali się nią
Bardziej szczegółowoEGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MIN 2017 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I DATA: 10
Bardziej szczegółowoAlgorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer
Bardziej szczegółowo4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
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ółowoProgramowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski
Programowanie w C/C++ Instrukcje - konstrukcje powtórka LABORKA Piotr Ciskowski zadanie 1. Licz się ze sobą Napisz funkcję bez argumentów i bez wyniku, która za każdym wywołaniem będzie podawała, ile razy
Bardziej szczegółowoa[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
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ół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ół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ółowowykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Bardziej szczegółowo----------------------------------------------------------------------------------------------------------------------------
Strona1 Napisz program, który czyta zdanie, a następnie wypisuje po kolei długości kolejnych jego wyrazów. Zakładamy, że zdanie zawiera litery alfabetu łacińskiego i spacje (po jednej pomiędzy dwoma dowolnymi
Bardziej szczegółowoPodstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
Bardziej szczegółowo2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).
2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout
Bardziej szczegółowoJarosław Wróblewski Matematyka Elementarna, zima 2012/13
Poniedziałek 12 listopada 2012 - zaczynamy od omówienia zadań z kolokwium nr 1. Wtorek 13 listopada 2012 - odbywają się zajęcia czwartkowe. 79. Uprościć wyrażenia a) 4 2+log 27 b) log 3 2 log 59 c) log
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ółowoInstrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012
Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; if (warunek) instrukcja1; else if (warunek2)
Bardziej szczegółowoI) Reszta z dzielenia
Michał Kremzer tekst zawiera 9 stron na moim komputerze Tajemnice liczb I) Reszta z dzielenia 1) Liczby naturalne dodatnie a, b, c dają tę samą resztę przy dzieleniu przez 3. Czy liczba A) a + b + c B)
Bardziej szczegółowoZadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.
Zadania język C++ Zad. 1 Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy. (Być moŝe są w tym samym wieku. Zrób w programie warunek,
Bardziej szczegółowoWojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2008/2009 TEST
TEST. Test składa się z 35 zadań. Na jego rozwiązanie masz 90 minut. W kaŝdym zadaniu wybierz jedną, najlepszą według Ciebie odpowiedź i zaznacz na karcie odpowiedzi znakiem x. Do dyspozycji masz wszystkie
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowo6. Pętle while. Przykłady
6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!
Bardziej szczegółowoWykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Problem pakowania plecaka System kryptograficzny Merklego-Hellmana
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ół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ółowoProjekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego
Projekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego Program Operacyjny Kapitał Ludzki 2007-2013 CZŁOWIEK NAJLEPSZA INWESTYCJA Publikacja
Bardziej szczegółowoTreść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów
Treść wykładu Pierścienie wielomianów. Definicja Niech P będzie pierścieniem. Wielomianem jednej zmiennej o współczynnikach z P nazywamy każdy ciąg f = (f 0, f 1, f 2,...), gdzie wyrazy ciągu f są prawie
Bardziej szczegółowoInformacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Bardziej szczegółowoNapisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza.
ZADANIE 1 Stopnie Napisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza. MoŜesz wykorzystać wzór: C = 5 / 9 ( F - 32 )
Bardziej szczegółowoMETODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Bardziej szczegółowoWieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
Bardziej szczegółowoZajęcia 4 procedury i funkcje
Zajęcia 4 procedury i funkcje 1. Napisz funkcję, która dokonuje dodania dwóch liczb przekazanych jako parametry. Następnie: zmień wartości zmiennych przekazanych jako parametry wewnątrz tej funkcji, ustaw
Bardziej szczegółowoMatematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku
Matematyka Dyskretna Andrzej Szepietowski 25 marca 2004 roku Rozdział 1 Teoria liczb 1.1 Dzielenie całkowitoliczbowe Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy
Bardziej szczegółowo