2016, Diszkrét matematika

Hasonló dokumentumok
2018, Diszkrét matematika

2018, Diszkrét matematika

2015, Diszkrét matematika

2016, Diszkrét matematika

2018, Diszkrét matematika

2018, Diszkre t matematika. 10. elo ada s

2016, Diszkrét matematika

2017, Diszkrét matematika

2016, Diszkrét matematika

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

2016, Diszkrét matematika

INFORMATIKA javítókulcs 2016

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

2015, Diszkrét matematika

Imperatív programozás

2018, Diszkrét matematika

A SZÁMFOGALOM KIALAKÍTÁSA

Diszkrét matematika I.

2018, Diszkre t matematika. 8. elo ada s

Analízis előadás és gyakorlat vázlat

2018, Funkcionális programozás

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

2016, Funkcionális programozás

Diszkrét matematika 2. estis képzés

Felvételi tematika INFORMATIKA

Negatív alapú számrendszerek

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika I.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

KOVÁCS BÉLA, MATEMATIKA I.

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

1. fogalom. Add meg az összeadásban szereplő számok elnevezéseit! Milyen tulajdonságai vannak az összeadásnak? Hogyan ellenőrizzük az összeadást?

Sapientia Egyetem, Matematika-Informatika Tanszék.

Nagy Gábor compalg.inf.elte.hu/ nagy

Matematikai logika és halmazelmélet

A félév során előkerülő témakörök

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

2018, Diszkrét matematika

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

1. Halmazok, számhalmazok, alapműveletek

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Algoritmusok helyességének bizonyítása. A Floyd-módszer

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

Kongruenciák. Waldhauser Tamás

2019, Diszkrét matematika. 1. el adás

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Algebra

Algoritmuselmélet gyakorlat (MMN111G)

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

A valós számok halmaza 5. I. rész MATEMATIKAI ANALÍZIS

Nagy Gábor compalg.inf.elte.hu/ nagy

Zárthelyi feladatok megoldásai tanulságokkal Csikvári Péter 1. a) Számítsuk ki a 2i + 3j + 6k kvaternió inverzét.

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Hatványozás. A hatványozás azonosságai

HALMAZELMÉLET feladatsor 1.

A valós számok halmaza

;3 ; 0; 1 7; ;7 5; 3. pozitív: ; pozitív is, negatív is: ;

Klasszikus algebra előadás. Waldhauser Tamás április 14.

Imperatív programozás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

KOVÁCS BÉLA, MATEMATIKA I.

KISLEXIKON : HALMAZOK, SZÁMHALMAZOK, PONTHALMAZOK. Tárgymutató: I.

Diszkrét matematika I.

Diszkrét matematika 1. estis képzés

Matematika 8. osztály

Analízis I. Vizsgatételsor

2018, Funkcionális programozás

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

Halmazok, intervallumok

Gy ur uk aprilis 11.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Számelméleti alapfogalmak

Számelmélet Megoldások

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Imperatív programozás

Typotex Kiadó. Bevezetés

Pótvizsga matematika 7. osztály (Iskola honlapján is megtalálható!) Tételek

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

INFORMATIKA tétel 2019

Megoldott programozási feladatok standard C-ben

Diszkrét matematika 2.

Amikor számhalmazokat ábrázolunk, az alaphalmaz sokszor a tanult sz mok halmaza, vagyisazoka számok, amelyekről már tanultunk.

2018, Funkcionális programozás

Diszkrét matematika I.

Diszkrét matematika 1.

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Komputeralgebra Rendszerek

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Racionális számok: Azok a számok, amelyek felírhatók két egész szám hányadosaként ( p q

Racionális és irracionális kifejezések

MATEMATIKA A 10. évfolyam

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Átírás:

Diszkrét matematika 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév

Miről volt szó az elmúlt előadáson? Követelmények, könyvészet Áttekintő Számtartományok: természetes számok, egész számok, Alapműveletek, típusok, algoritmusok Python-ban

Miről lesz szó? A gyorshatványozás algoritmusa - iteratív, rekurzív változatok. Számtartományok: racionális számok, irracionális számok Racionális számok sorozatba rendezése legnagyobb közös osztó algoritmusa, rekurzív változat Lánctörtek racionális számok lánctört jegyei

1. feladat: határozzuk meg 2 100 értékét. ** operátorral, az eredmény long típusú érték lesz, ami a Pythonban végtelen precizitású egész értéket jelent, ezt az eredmény végén megjelenő L szimbólum jelzi. >>> 2**100 1267650600228229401496703205376L Hány szorzást végez az algoritmus az eredmény meghatározásához?

Létezik olyan algoritmus, amely 2 100 meghatározásakor 9 darab szorzást végez. Hogyan?? A gyorshatványozás algoritmusával, amely logaritmikus futási idejű. Mit jelent ez? 2. feladat: határozzuk meg x n értékét. def my_pow (x, n): res = 1 while n <> 0: if n % 2 == 1: res = res * x x = x * x n = n / 2 return res >>> my_pow(2, 100) 1267650600228229401496703205376L

3. feladat: a gyorshatványozás, rekurzív (1)változat def my_pow1 (x, n): if n == 0: return 1 if n % 2 == 0: return my_pow1 (x * x, n / 2) return x * my_pow1 (x * x, n / 2) >>> my_pow1(2, 100) 1267650600228229401496703205376L A gyorshatványozás, rekurzív (2)változat: def my_pow2 (x, n): if n == 0: return 1 temp = my_pow2 (x, n/2) if n % 2 == 1: return x * temp * temp else: return temp * temp

Racionális számok halmazjelölés: Q = { a : a, b Z, b 0}, b egész számok rendezett párjaként is felfoghatóak, tulajdonságok: kommutatívitás, asszociatívítás, disztributívítás, a racionális számok halmaza zárt az összeadásra, kivonásra, szorzásra, osztásra nézve, összeadásra, szorzásra nézve minden elemnek lesz inverz eleme, sűrűn rendezett halmazt alkotnak: bármely két racionális szám között van egy harmadik, végtelen sok alakban feĺırhatóak irreducibilis tört, sorozatba rendezhetőek, tizedes tört alak: véges vagy végtelen szakaszos törtek.

4. feladat: határozzuk meg egy adott racionális szám irreducibilis alakját. a x y racionális számot az (x, y) számpárral fogjuk jelölni, egy tört irreducibilis, ha a számláló és nevező legnagyobb közös osztója 1 meg kell határozni két szám legnagyobb közös osztóját: eukleidészi algoritmus (rekurzív változat) def ialak (a, b): l = lnko(a, b) return (a/l, b/l) # két szám legnagyobb közös osztója, eukleideszi algoritmus def lnko(a, b): temp = a % b if temp == 0: return b return lnko(b, temp)

Racionális számok A racionális számok halmaza megszámlálható: a racionális számok halmaza felsorolható, azaz létezik egy számsorozat, amelyet a racionális számok alkotnak : r 1, r 2,..., r n,..., bármelyik racionális szám feĺırható p/q alakba:

5. feladat: Az előző oldalon megadott sorrend szerint írassuk ki az első 55 racionális számot, I. módszer. def aracionalis (k): for j in range(1, k+1): print (j, k+1-j), print def racionalis (n): for k in range(1, n+1): aracionalis (k) >>> racionalis (10) (1, 1) (1, 2) (2, 1) (1, 3) (2, 2) (3, 1)...... (3, 8) (4, 7) (5, 6) (6, 5) (7, 4) (8, 3) (9, 2) (10, 1)

Az 5. feladat segédfüggvény nélkül, egymásba ágyazott for ciklus-sal: def racionalis1 (n): for k in range(1, n+1): for j in range(1, k+1): print (j, k+1-j), print Lesznek olyan racionális számok, amelyek többször is megjelennek a generált számok között?! Ha egy számpárból képezhető racionális szám nem irreducubilis, akkor azt jelenti, hogy már egyszer ki volt generálva az 5. feladat befejezése házi feladat.

Az 5. feladat lista adatszerkezettel, a listába számpárok kerülnek: def aracionalisl (k): #az L listát üres listaként inicializáljuk: L = [] for j in range(1, k+1): #az L lista végéhez hozzáfuzunk egy számpárt: L = L + [(j, k+1-j)] return L Megjegyzések, kommentek használata: egysoros megjegyzés: #ez egy egysoros megjegyzés többsoros megjegyzés: """ez egy többsoros megjegyzés"""

6. feladat: Írassuk ki az első n racionális számot, alkalmazva a következő algoritmust: az x után következő racionális szám: 2 x + 1 x reciproka, y y y ahol alsó egész részt jelent, II. módszer. pl: pl: 5 2 5 2 2 5 2 5 3 3 + 1 5 2 = 2 2 + 1 5 2 = 5 5 2 = (10 5) 2 = 5 2 2 5 + 1 5 3 = 2 1 + 1 5 3 = (9 5) 3 = 4 3 3 4 Ezzel a módszerrel a következő listát kapjuk: (1, 1) (1, 2), (2, 1) (1, 3), (3, 2), (2, 3), (3, 1) (1, 4), (4, 3), (3, 5), (5, 2), (2, 5), (5, 3), (3, 4), (4, 1)...

6. feladat: a feladat megoldásához több függvényt is meg kell írni Az x y racionális szám utáni racionális szám meghatározása: def nextrac (x, y): nrx = (2 * (x/y) + 1) * y - x nry = y g = lnko (nrx, nry) return (nry / g, nrx / g)

6. feladat: A számpárok kíıratása: def lista1 (x, y, n): print(x, y) for i in range (0, n): (x, y) = nextrac(x, y) print (x, y), meghívás: lista1 (1, 1, 7)

6. feladat: A számpárok listában való eltárolása: def lista2 (x, y, n): L = [(x, y)] for i in range (0, n): (x, y) = nextrac(x, y) L = L + [(x, y)] return L meghívás: lista2 (1, 1, 7)

Irracionális számok halmazjelölés: Q, azok a számok, melyek nem írhatóak fel két egész szám hányadosaként, azaz a végtelen, nem szakaszos tizedes törtek, híresebb irracionális számok: 2 = 1.4142..., π = 3.1415..., e = 2.7182..., φ = 1+ 5 = 1.6118..., az aranyarány. 2 a számítástechnika az irracionális számok közeĺıtett értékét tudja meghatározni lánctörtek segítségével könnyedén meglehet határozni a közeĺıtett érték tízedesjegyeit

Lánctörtek (Continued fraction) A lánctört egy emeletes tört, amely kétféle alakban is megadható, ahol a két alak átalakítható egymásba: a 0 + a 1 + b 1 a 2 + b 2 b 3 a 3 + b4... d 0 + d 1 + 1 d 2 + 1 1 d 3 + 1... A második alak esetében a [d 0, d 1, d 2, d 3,... ] számsorozatot a lánctört jegyeinek hívják. Megállapíthajuk, hogy: a racionális számok véges lánctörtek, az irracionális számok végtelen lánctörtek.

Lánctörtek, példa Alakítsuk át 37 -t lánctörtté: 13 37 = 2 + 1 13 1 + 1 = [2, 1, 5, 2] = 2.(846153) 5 + 1 2 Alakítsuk át 41 -t lánctörtté: 11 41 = 3 + 1 11 1 + 1 2 + 1 = [3, 1, 2, 1, 2] = 3.(72) 1 + 1 2

7. feladat: határozzuk meg az x y def lanct(x, y): L = [] while 1: L += [x / y] r = x % y if r == 0: break x = y y = r return L racionális számnak megfelelő lánctört jegyeit >>> lanct(89, 63) [1, 2, 2, 2, 1, 3] >>> lanct(89, 55) [1, 1, 1, 1, 1, 1, 1, 1, 2]