Reševanje problemov in algoritmi

Similar documents
Solution Sheet (i) q = 5, r = 15 (ii) q = 58, r = 15 (iii) q = 3, r = 7 (iv) q = 6, r = (i) gcd (97, 157) = 1 = ,

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje

Iskanje najcenejše poti v grafih preko polkolobarjev

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

Osnove numerične matematike

TOPLJENEC ASOCIIRA LE V VODNI FAZI

Discrete Structures Lecture Primes and Greatest Common Divisor

Projektovanje paralelnih algoritama II

Kristijan Boček. Aritmetična knjižnica vgrajenega sistema za vodenje zaščitnega releja

Intervalske Bézierove krivulje in ploskve

The consequences of quantum computing

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

Iterativne metode podprostorov 2010/2011 Domače naloge

Eulerjevi in Hamiltonovi grafi

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

Problem umetnostne galerije

CSE 311 Lecture 13: Primes and GCD. Emina Torlak and Kevin Zatloukal

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO

Samo-nastavljivo vodenje z DMC-jem in proporcionalnim regulatorjem

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink

JERNEJ TONEJC. Fakulteta za matematiko in fiziko

Homework #2 solutions Due: June 15, 2012

MATH 215 Final. M4. For all a, b in Z, a b = b a.

Izvedbe hitrega urejanja za CPE in GPE

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

Aritmetične operacije v logaritemskem številskem sistemu

Trije klasični problemi grške geometrije

cse 311: foundations of computing Fall 2015 Lecture 12: Primes, GCD, applications

cse 311: foundations of computing Spring 2015 Lecture 12: Primes, GCD, applications

Vsebina Od problema do načrta programa 1. del

Solutions to Section 2.1 Homework Problems S. F. Ellermeyer

7.2 Applications of Euler s and Fermat s Theorem.

CSE 311: Foundations of Computing. Lecture 12: Two s Complement, Primes, GCD

Data Dependences and Parallelization. Stanford University CS243 Winter 2006 Wei Li 1

Mathematics of Cryptography Part I

Introduction to Number Theory

Linearna algebra. Bojan Orel. Univerza v Ljubljani

basics of security/cryptography

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Kvadratne forme nad končnimi obsegi

Fall 2015 Lecture 14: Modular congruences. cse 311: foundations of computing

Primes. Rational, Gaussian, Industrial Strength, etc. Robert Campbell 11/29/2010 1

SIMETRIČNE KOMPONENTE

Mathematics of Cryptography

Number Theory. Modular Arithmetic

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. Gregor Ambrož

Addition. Ch1 - Algorithms with numbers. Multiplication. al-khwārizmī. al-khwārizmī. Division 53+35=88. Cost? (n number of bits) 13x11=143. Cost?

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA DIPLOMSKO DELO MAJA OSTERMAN

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA FAKULTETA ZA MATEMATIKO IN FIZIKO DIPLOMSKO DELO MIHAELA REMIC

Državni izpitni center MATEMATIKA. Izpitna pola. Sobota, 3. junij 2017 / 120 minut

4 Number Theory and Cryptography

CISC-102 Winter 2016 Lecture 11 Greatest Common Divisor

CSC 474 Network Security. Outline. GCD and Euclid s Algorithm. GCD and Euclid s Algorithm Modulo Arithmetic Modular Exponentiation Discrete Logarithms

Number Theory Basics Z = {..., 2, 1, 0, 1, 2,...} For, b Z, we say that divides b if z = b for some. Notation: b Fact: for all, b, c Z:

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Študijska smer Study field ECTS

SVM = Support Vector Machine = Metoda podpornih vektorjev

Martin Juvan: SPREMENLJIVO ŠTEVILO PARAMETROV. List za mlade matematike, fizike, astronome in računalnikarje

MATHEMA ZAVOD ZA POPULARIZACIJO MATEMATIKE PRAVILNIK. šolsko leto 2012/13 A B A C US. 16. International Math Challenge

3.2 Solving linear congruences. v3

Zgoščevanje podatkov

NOTES ON SIMPLE NUMBER THEORY

ECE 646 Lecture 5. Mathematical Background: Modular Arithmetic

2.3 In modular arithmetic, all arithmetic operations are performed modulo some integer.

Hibridizacija požrešnih algoritmov in hitrega urejanja

a = qb + r where 0 r < b. Proof. We first prove this result under the additional assumption that b > 0 is a natural number. Let

The Euclidean Algorithm and Multiplicative Inverses

5: The Integers (An introduction to Number Theory)

Chapter 5: The Integers

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

Elementary Properties of the Integers

Izvedba algoritmov računske geometrije. na arhitekturi CUDA

Vzporedni algoritmi za urejanje podatkov

Computing the steady-state response of nonlinear circuits by means of the ǫ-algorithm

KRIPTOGRAFIJA in VARNOST SLOVENSKIH E-TRGOVIN

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan

DIOFANTSKE ČETVERICE

Public Key Encryption

Rings of Residues. S. F. Ellermeyer. September 18, ; [1] m

Shor s Prime Factorization Algorithm

CMPUT 403: Number Theory

CS 491 CAP Mathematics

FRAKTALNA DIMENZIJA. Fakulteta za matematiko in fiziko Univerza v Ljubljani

OPTIMIZACIJA Z ROJEM DELCEV

INTELLIGENTNI SISTEMI Mehka Logika

Izvajanje geometrijskih konstrukcij v osnovni šoli

Topološka obdelava slik

The following is an informal description of Euclid s algorithm for finding the greatest common divisor of a pair of numbers:

Chapter 3 Basic Number Theory

CSC B36 Additional Notes sample induction and well-ordering proofs. c Nick Cheng

Grafični gradnik za merjenje kvalitete klasifikatorja s pomočjo krivulj

INTEGERS. In this section we aim to show the following: Goal. Every natural number can be written uniquely as a product of primes.

Outline. Some Review: Divisors. Common Divisors. Primes and Factors. b divides a (or b is a divisor of a) if a = mb for some m

Outline. AIT 682: Network and Systems Security. GCD and Euclid s Algorithm Modulo Arithmetic Modular Exponentiation Discrete Logarithms

Acta Chim. Slov. 2003, 50,

Particija grafa, odkrivanje skupnosti in maksimalen prerez

Periodic properties of matrices

CSE 20 DISCRETE MATH. Winter

CS483 Design and Analysis of Algorithms

Klemen Kregar, Mitja Lakner, Dušan Kogoj KEY WORDS

Transcription:

Reševanje problemov in algoritmi Vhod Algoritem Izhod

Kaj bomo spoznali Zgodovina algoritmov. Primeri algoritmov. Algoritmi in programi.

Kaj je algoritem? Algoritem je postopek, kako korak za korakom rešimo nek problem. Primer, problem množenja dveh števil. Za rešitev tega problema je na voljo več algoritmov: množenje s pomočjo tabele (primerno za majhna števila) množenje s pomočjo logaritmov množenje na klasičen način množenje s pomočjo računalnika z uporabo fiksne ali pomične decimalne pike.

Zgodovina Euclid (~ 300 p.n.š), Eratosthenes (~ 200 p.n.š) aritmetični in geometrični algoritmi. al Khwarizmi (~ 800) aritmetični, algebraični, geometrični algoritmi. Napier (~ 1600) aritmetika s pomočjo logaritmov. Newton (~ 1700) diferenciacija, integracija. Turing (~ 1940)

Primer: Iskanje srednje točke(1) Problem: Iskanje srednje točke da segmentu daljice AB: A E B 1. Narišemo dva kroga z enakim polmerom in središčema v A in B, kroga se medsebojno sekata. 2. Točki C in D sta presečišči obeh krogov. 3. Med točkama C in D povlečemo ravno črto. 4. E je točka, kjer črta CD seka črto AB. 5. E je odgovor na zastavljeno vprašanje. To seveda lahko rešimo ročno s svinčnikom, šestilom in ravnilom.

Primer: Iskanje srednje točke(2) Animacija 1. Narišemo sekajoča se kroga enakega polmera s središčema v A in B. 2. C in D sta presečišči obeh krogov. 3. Narišemo ravno črto med C in D. 4. Naj bo E točka presečišča CD in AB. 5. Odgovor na vprašanje je točka E. C A E B D

Primer: Največji skupni delitelj (1) Največji skupni delitelj (greatest common divisor, GCD) dveh pozitivnih celih števil je največje celo število, s katerim lahko točno delimo oba (primer: GCD od 77 in 21 je 7. Euklidov algoritem: GCD dveh celih števil m in n dobimo tako: 1. Nastavimo p na m in q na n. 2. Dokler q ne točno deli p, ponavljamo: 2.1. Nastavimo p na q, nastavimo q na (p modulo q). 3. Končamo z odgovorom q. To seveda lahko naredimo tudi ročno.

Primer: Največji skupni delitelj (2) Animacija: GCD dveh celih števil m in n dobimo tako : 1. Nastavimo p na m in q na n. 2. Dokler q ne točno deli p, ponavljamo : 2.1. Nastavimo p na q, nastavimo q na (p modulo q). 3. Končamo z odgovorom q.. m 77 n 21 p 77 21 14 q 21 14 7

Primer: Največji skupni delitelj (3) Implementacija v Javi: static int gcd (int m, int n) { // Return the greatest common divisor of positive integers m and n. int p = m, q = n; while (p % q!= 0) { int r = p % q; p = q; q = r; } return q; } Demo

Primer: kvadratni koreni(1) Pozitivni kvadratni koren pozitivnega števila a je pozitivno število r tako, da velja r 2 = a. Newtonov algoritem za kvadratni koren: približek = (( a / približek) + približek) / 2 ; Približno vrednost kvadratnega korena od a računamo tako: 1. Nastavimo r na srednjo vrednost med 1 in a. 2. Dokler ni r 2 približno enak a, ponavljamo: 2.1 Nastavimo r na srednjo vrednost med r in a/r. 3. Končamo z odgovorom r.

Primer: kvadratni koreni(2) Animacija: 1. Nastavimo r na srednjo vrednost med 1 in a. 2. Dokler ni r 2 približno enak a, ponavljamo: 2.1 Nastavimo r na srednjo vrednost med r in a/r. 3. Končamo z odgovorom r. a 2.0 r 1.414 1.417 1.5

Primer: kvadratni koreni(3) Implementacija v Javi: static double sqrt (double a) { // Compute approximately the positive square root of positive number a. double r = (1.0 + a)/2; while (Math.abs(r*r/a - 1.0) >= 0.00005) r = (r + a/r)/2; return r; } Demo

Algoritmi in programi(1) Algoritmi: Izvaja jih lahko človek ali računalnik Izrazimo jih lahko v kateremkoli primernem jeziku Lahko so zelo abstraktni. Programi: Izvaja jih lahko računalnik Izrazimo jih v nekem programskem jeziku Biti morajo zelo podrobni.

Algoritmi in programi(2) Primer opisa algoritma v angleščini. Korake lahko oštevilčimo: 1. Do this. 2. Do that. Telo pogoja nakažemo z zamikom: 7. If : 7.1. Do this. 7.2. Do that. Telo zanke nakažemo z zamikom: 8. While, repeat: 8.1. Do this. 8.2. Do that. Do this and then do that. Do this and then do that, but only if condition is true. Do this and then do that, as long as condition is true.

Psevdokoda Visokonivojski opis algoritma Precej strukturiran Manj podroben od programa Priporočljiv zapis za opisovanje algoritmov Skriva načrtovalske posebnosti programa Primer: poišči maksimalni element tabele Algorithm arraymax(a, n) Input array A of n integers Output maximum element of A currentmax A[0] for i 1 to n 1 do if A[i] > currentmax then currentmax A[i] return currentmax Demo

Zanimive skupine algoritmov Algoritmi šifriranja Genetski algoritmi (Primer: umetno življenje: primer: Simulacija jat (WEB,source)) Algoritmi geografskih informacijskih sistemov Algoritmi urejanja (sortiranja) Iskalni algoritmi Algoritmi z drevesi Algoritmi računske geometrije Algoritmi upravljanja s projekti in še in še

Zanimive strani z algoritmi Computer Programming Algorithms Directory Dictionary of Algorithms and Data Structures