Biblioteke i generisanje nasumičnih brojeva

Monty Hall problem

Monty Hall problem

Uvod u funkcije

Uvod u funkcije

Uvod u funkcije

Uvod u funkcije

  • Funkcija: grupa naredbi unutar programa koje izvršavaju određeni zadatak
    • izvršava se samo kada se pozove
    • omogućava upotrebu istog koda na više mjesta u programu
    • koristi se za strukturiranje programa
  • Funkcijama se mogu proslijediti podaci
    • parametri / argumenti
  • Funkcije mogu vratiti podatke kao rezultat poziva
var = naziv_funkcije(arg1, arg2)

Ugrađene funkcije

  • Python interpreter posjeduje funkcije koje su u njega ugrađene i koje su uvijek dostupne
    • nije potrebna komanda import

abs() chr() exec() hex() map() print() staticmethod()
all() classmethod() filter() id() max() property() str()
any() compile() float() input() memoryview() range() sum()
ascii() complex() format() int() min() repr() super()
bin() delattr() frozenset() isinstance() next() reversed() tuple()
bool() dict() getattr() issubclass() object() round() type()
breakpoint() dir() globals() iter() oct() set() vars()
bytearray() divmod() hasattr() len() open() setattr() zip()
bytes() enumerate() hash() list() ord() slice() __import__()
callable() eval() help() locals() pow() sorted()

Python-ova standardna biblioteka

  • Python-ova standardna biblioteka nudi širok spektar sredstava koja olakšavaju programiranje
  • Biblioteka uključuje ugrađene:
    • funkcije
    • konstante
    • tipove
    • izuzetke
  • Najveći dio biblioteke predstavljaju kolekcije modula

Modul

  • Modul je datoteka koja sadrži Python-ove definicije i komande
    • ima ekstenziju .py

Modul

Modul

Modul

Modul

Modul

  • Sadržaj modula se može koristiti tek nakon njegovog uvoza u trenutni modul / REPL okruženje
    • komanda import
    • obično se stavlja na sam početak datoteke
  • Varijanta import komande kojom se direktno uvoze nazivi (npr. funkcija) u trenutni modul koristi ključnu riječ from
    • nije potrebno navoditi naziv modula prije upotrebe naziva funkcije
    • moguć uvoz svih naziva upotrebom zvjezdice "*"
  • Ključnom riječi "as" modulu se može dati nadimak / alias

Modul math

Modul math

  • Modul math: dio standardne biblioteke koji sadrži funkcije korisne za izvođenje različitih matematičkih operacija

    • Najčešće prima jednu ili više vrijednosti kao argumente, izvršava matematičku operaciju i vraća rezultat

Modul math

  • Modul math definiše varijable pi i e

    • Može se koristiti u formulama koja zahtijevaju ove vrijednosti da bi se dobio precizniji rezultat

povrsina_kruga = math.pi * r**2

Modul math

g = \frac{{v_0}^2}{R} \sin{(2\alpha)}

Modul math

r = \sqrt{x^2 + y^2}
\varphi = \arctan{\frac{y}{x}}

Nasumični brojevi

Nasumični brojevi

Nasumični brojevi

  • Generator pseudo-nasumičnih brojeva: je algoritam koji koristi matematičke formule kako bi proizveo niz brojeva čije osobine su približne nizu nasumičnih brojeva
    • eng. Pseudorandom number generator - PRNG
    • Sekvenca nije istinski nasumična jer je određena inicijalnom vrijednošću (eng. seed)
    • Puni krug (eng. full cycle)  je dužina sekvence koja je potrebna PRNG da se vrati u stanje inicijalne vrijednosti
    • PRNG je deterministički proces
      • može se reproducirati / nanovo proizvesti
      • za istu inicijalnu vrijednost generiše istu sekvencu

Nasumični brojevi

  • Hardverski generator nasumičnih brojeva: je uređaj koji generiše nasumične brojeve na osnovu fizičkog procesa, a ne algoritma
    • eng. Hardware random number generator - HRNG
    • Naziva se i Generator stvarnih nasumičnih brojeva
      • eng. True random number generator - TRNG
  • Upotrebaljavaju se mikroskopski fenomeni koji generišu signale sa statistički nasumičnim šumom (eng. nosie)
    • termalni šum
    • fotoelektrični efekt
  • Zbog efikasnosti često se upotrebljavaju za generisanje inicijalne vrijednosti PRNG-a

Modul random

  • random: Python-ov modul koji implementira PRNG za razne distribucije
    • cijeli brojevi - uniforman izbor iz raspona
    • sekvence
      • uniforman izbor nasumičnog elementa
      • generisanje nasumične permutacije
      • nasumično uzorkovanje bez zamjene
    • realni brojevi - različite distribucije
    • generisanje distribucija uglova
  • Koristi Mersenne Twister kao osnovni generator
  • Nije pogodan za upotrebu u oblasti računarske sigurnosti

Modul random

Modul random

Modul random

Modul random

Modul random

Modul random

Programiranje I - P05

By Elmedin Selmanovic

Programiranje I - P05

  • 971