Naključna števila import random random.random()

Slides:



Advertisements
Podobné prezentace
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Advertisements

Vnitřní řazení v poli (in sito)
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Práce s Xml ● Základní moduly pro práci s XML: – Xml.dom – Document Object Model API – Xml.dom.minidom ● Základní objekt je Dokument – stromová struktura.
Jazyk a jazyková komunikace Český jazyk a literatura
ČESKÝ JAZYK 1. ROČNÍK Čtení - slabiky Jana Štadlerová ZŠ Věšín.
BarvaReverzu==MODRA navesti=„JB“ navesti=„JR“ Nastav hodnotu a barvu karty hodnotaKarty==ZOLIKbarvaReverzu==MODRA navesti=„RB“ navesti=„RR“ Reverz // Nastavím.
Pascal - větvení.
Digitální učební materiál Název projektu: Inovace vzdělávání na SPŠ a VOŠ PísekČíslo projektu: CZ.1.07/1.5.00/ Škola: Střední průmyslová škola a.
Dítě jako majetek v rozvodovém řízení. Co dítě prožívá? Proč rozvod rodičů dítě tak bolí? Protože bylo zvyklé na jistotu, která najednou není. Čas rozvodu.
Termika bublinové úlohy Mgr. Miroslava Bělochová Termika.
BAREVNÝ ŠNEK VY_32_I NOVACE _09MD-2 Dagmar Matúšů ZŠ a MŠ Nedašov.
likovna teorija 7, 8, 9 razred
KAJETAN KOVIČ Avtor Mačka Murija in plišastega medvedka Pikija Jakoba, ki je s svojim delom zaznamoval slovensko književnost druge polovice 20. stoletja.
Základní škola a mateřská škola Plzeň-Božkov, Vřesinská 17, příspěvková organiazce Charakteristika výukového materiálu AutorMgr. Jana Boháčová Datum vytvoření.
TESTY א 2 (CHÍ-kvadrát) TEST DOBRÉ SHODY TEST DOBRÉ SHODY TEST NEZÁVISLOSTI TEST NEZÁVISLOSTI Testy pro kategoriální veličiny Testy pro kategoriální veličiny.
Moderní metody navrhování převodových ústrojí
Jazyk a jazyková komunikace
Odborná praxe v Německu
Biologie - pokyny ke zkoušce
CZECH SALES ACADEMY Hradec Králové – VOŠ a SOŠ s.r.o.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Strukturované typy proměnných v programovacím jazyce Pascal - 1.hodina
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Excel – tabulkový procesor
- vlastním jménem Sonny John Moore -je americký producent elektronické hudby, DJ a bývalý frontman kapely From First to Last - narodil se 15. ledna.
METODICKÝ LIST PRO ZŠ Pro zpracování vzdělávacích materiálů (VM)v rámci projektu EU peníze školám Operační program Vzdělávání pro konkurenceschopnost Projekt:
Algoritmizace a programování
Lineární kongruentní generátor
OZNAČENÍ MATERIÁLU: VY_32_INOVACE_238_ČJ2
Charakteristika výukového materiálu
Základy statistické indukce
NÁZEV ŠKOLY: ZŠ Kopřivnice, Štramberská 189, příspěvková organizace
ZÁKLADNÍ ŠKOLA SLOVAN, KROMĚŘÍŽ, PŘÍSPĚVKOVÁ ORGANIZACE
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Procedury a Funkce v programovacím jazyce Pascal
OZNAČENÍ MATERIÁLU: VY_32_INOVACE_237_ČJ2
Kalendář 2009.
„Moje škola – moje třída“ VI. A + VI. B
Název projektu: Moderní škola
Didaktika likovne umetnosti II
PUŠČAVA.
UČENCI OSNOVNE ŠOLE DESKLE
TŘÍDNÍ SCHŮZKY
dr. Tatjana Hodnik Čadež, PeF
Miran LOVRIN, univ.dipl.ing.agr.
URŠKA PRAPROTNIK – ZUPAN
MU002 Informatika II Základy algoritmizace 1/13
Avtorica: Lara Polanič, 8.a
IZDELAVA SEMINARSKE NALOGE
SISTEMI VELIKOSTI OBLAČIL IN OZNAČEVANJA
AUTOR: Mgr. Erika Hovorková
NAVODILA ZA IZDELAVO SEMINARSKE NALOGE
Drevesa dogodkov in drevesa odpovedi
Pedagoški etos in pedagoški eros
Vzgojni načrt v sliki in besedi
Izbira barvnega prostora pri sistemih strojnega vida
ZDROJ V PC Ján Majoroš ZEE.
Virtualni Šport Mentorja projekta: Sebastjan Šprager in Boris Cigale
Predmeti iz preteklosti
Osnove raziskovanja v managementu in pravu Tema IV: Anketne raziskave
Michael J. Swain, Dana H. Ballard
4. Algoritmy a programovanie v jazyku Pascal Cykly a riadenie
Jelka Čop Jelka Čop Jelka Čop Jelka Čop.
ŽENY Čas utíká. Život letí. Dálky rozdělují. Děti rostou. Práce přichází a odchází.
Lineární kongruentní generátor
Exercise 1.
NÁZEV ŠKOLY: MŠ a ZŠ Veselí n.M., Kollárova 1045
Autobusy … v dopravní špičce.
5. setkání Řídícího výboru MAP rozvoje vzdělávání území SO ORP Stod
Transkript prezentace:

Naključna števila import random random.random() Dobimo decimalno število z intervala [0.0, 1.0)

random.randint(a, b) Dobimo naključno celo število med a in b. Meji sta vključeni, torej lahko dobimo tako a kot tudi b. Kocka: random.randint(1,6) Ruleta (francoska): random.randint(0, 36) Poker: Barva: random.randint(1, 4) Vrednost: random.randint(2, 14) Vir slik: http://commons.wikimedia.org

Zgledi Sestavi funkcijo, ki vrne par (barva, vrednost) , ki pomeni neko naključno karto Barva: 'srce', 'pik', 'kara', 'križ' Vrednost: 2, 3, ..., 10, fant, dama, kralj, as Ideja: Generiramo dve naključni števili. Prva je barva, druga vrednost.

''' vrne par (barva, vrednost) ki predstavlja import random def karta() : ''' vrne par (barva, vrednost) ki predstavlja neko naključno karto. Oba elementa sta niza. ''' barvaStev = random.randint(1,4) if barvaStev == 1 : barva = 'srce' if barvaStev == 2 : barva = 'pik' if barvaStev == 3 : barva = 'kara' if barvaStev == 4 : barva = 'križ' vrednostStev = random.randint(2, 14) if vrednostStev < 11 : # od 2 - 10 vrednost = str(vrednostStev) # kot niz '2', ..., '10' elif vrednostStev == 11 : # fant vrednost = 'fant' elif vrednostStev == 12 : vrednost = 'dama' elif vrednostStev == 13 : vrednost = 'kralj' else : vrednost = 'as' return (barva, vrednost) >>> karta() ('kara', '2') ('pik', '6') ('srce', 'kralj') ('križ', '10') ('kara', '7')

Če smo že boljši programerji ... import random def karta() : ''' vrne neko naključno karto v obliki ('srce', '4') ('kara', 'kralj') ''' barve = ['srce', 'pik', 'križ', 'kara'] # seznam možnih barv barva = random.randint(0,3) # indeks ustrezne barve barvaKarte = barve[barva] vrednost = random.randint(2, 14) opisi = ['fant', 'kraljica', 'kralj', 'as'] if vrednost > 10 : vrednostKarte = opisi[vrednost - 11] else : vrednostKarte = str(vrednost) return (barvaKarte, vrednostKarte)

Z uporabo choice def karta() : ''' vrne neko naključno karto v obliki ('srce', '4') ('kara', 'kralj') ''' barve = ['srce', 'pik', 'križ', 'kara'] # seznam možnih barv barva = random.randint(0,3) # indeks ustrezne barve barvaKarte = random.choice(barve) vrednosti = list(range(2,10)) + ['fant', 'kraljica', 'kralj', 'as'] vrednostKarte = str(random.choice(vrednosti)) return (barvaKarte, vrednostKarte)

Pari / nabori Kot rezultat dobimo npr. ('srce', '9') Kaj je (a, b) ? To je par, oziroma nabor (z dvema vrednostima) Nabori - enako kot seznami, le da jih ne moremo spreminjati po komponentah Uvod v programiranje: Vaja2 (Izračunan kot naj bo v stopinjah in minutah) x = (2, 5) x[1] # to je 5! Razpakiranje: prva, druga = (3, 5)

Druge karte, druga imena Nemčija: želod, list, srce, kraguljček Italija: kij, sablja, kupa, denar Švica: želod, ščit, roža, kraguljček Lokalna poimenovanja Preferans: od 7 do As Vir slik: http://commons.wikimedia.org

Posplošena funkcija Ideja 1: Ideja 2: def karta (seznamBarv, seznamVrednosti) Ideja 1: Generiramo indeks barve in indeks vrednosti Potem le vzamemo iz seznama Indeks barve: med 0 in dolžina seznama – 1 random.randint(0, len(seznamBarv) – 1) Ideja 2: S choice vzamemo iz seznama random.choice(seznamBarv)

Privzete vrednosti Moti nas, da moramo pri uporabi "običajnih" kart ob klicu vnašati tako dolga seznama. Funkciji zato določimo privzeto vrednost parametrov def mojaFun(par1 = 10, par2 = 5) : Če kličemo: mojaFun() je to enako, kot mojaFun(10, 5) torej par1 je 10 in par2 je 5 mojaFun(2, 7) par1 je 2 in par2 je 7 mojaFun(3) enako kot mojaFun(3, 5)

Poimenovane vrednosti Keyword arguments Če pa vemo, kako so poimenovani parametri v funkciji, lahko to izrabimo tudi pri klicu def mojaFun(par1, par2) Ni pomemben vrstni red mojaFun(par2 = 2, par1 = 7) par1 je 7 in par2 je 2 Lahko najprej navedemo nekaj "navadnih" parametrov mojaFun(7, par2 = 2) Ampak po uporabi poimenovanega parametra ne moremo več uporabiti nepoimenovanih mojaFun(par2 = 3, 5) SyntaxError: non-keyword arg after keyword arg Kje smo to srečali? print('bla', 'ble', 'blo', sep = '*', end = '//')

def kartaImena( seznamBarv = ['srce','križ','kara','pik'], seznamVrednosti = ['2','3','4','5','6','7','8','9', '10', 'fant', 'dama', 'kralj', 'as']) : ''' vrne par (barva, vrednost) ki predstavlja neko naključno karto. Oba elementa sta niza. ''' barvaStev = random.randint(0,len(seznamBarv) - 1) # nakl. indeks barva = seznamBarv[barvaStev] # poberemo ustrezno barvo vrednostStev = random.randint(0, len(seznamVrednosti) - 1) vrednost = seznamVrednosti[vrednostStev] return (barva, vrednost) >>> kartaImena() ('kara', '4') ('srce', 'dama') >>> kartaImena(['kij', 'sablja', 'kupa', 'denar']) ('denar', '2') ('denar', 'as') >>> kartaImena(['rdeča','črna'], [1, 2, 3, 4, 5, 6]) ('črna', 1) ('rdeča', 3)

Seveda bi funkcijo lahko napisali tudi ... def kartaImena2(seznamBarv = ['srce','križ','kara','pik'], seznamVrednosti = ['2','3','4','5','6','7','8','9', '10', 'fant', 'dama', 'kralj', 'as']) : ''' vrne par (barva, vrednost) ki predstavlja neko naključno karto. ''' barva = random.choice(seznamBarv) # ustrezna barva vrednost = random.choice(seznamVrednosti) return (barva, vrednost)

Funkcije v random V random je cel kup uporabnih funkcij random.random() Naključno decimalno število med 0 in 1 /z 0 in brez 1/ random.randint(a, b) Naključno celo število med a in b (vključno z a in b) random.uniform(a, b) Naključno decimalno število med a in b random.choice(sez) Vrne naključni element seznama sez random.shufle(sez) Premeša seznam sez. Seznam sez je potem spremenjen! random.sample(vzorec, k) Vrne seznam k različnih naključnih elementov seznama vzorec

Nekaj zgledov Izračunaj Pi s pomočjo metode MonteCarlo Če naključno generiramo točke (x,y), kjer velja 0 <= x <= 1 in 0 <= y <= 1, je razmerje med točkami, ki so znotraj kroga s središčem v (0,0) in s polmerom 1 in vsemi točkami, pri dovolj velikem številu poskusov Pi/4 Preveri kvaliteto računalniške kocke Denimo, da n-krat vržemo računalniško kocko in štejemo, kolikokrat je padlo 5 pik. Če je n velik, mora biti (število padlih 5) / n približno 1/6. Napolni seznam celih števil z naključnimi vrednostmi tako, da bo urejen nepadajoče A) Če je dovoljeno na koncu narediti sort() B) Če mora seznam sproti nastajati urejeno!