CURS ONLINE INTERACTIV

Python 3

PENTRU ÎNCEPĂTORI

Proiect susținut de Uniunea Profesorilor de Informatică din România
LECȚIA 13
PAG. 1 / 3
Numere aleatoare
Acasă >>> Lecții online

Hazardul

Mulți dintre voi poate ați jucat la Loto 6/49, unde nu putem prezice acele șase numere valoroase... cu toată statistica din lume, iar doar o întâmplare fericită! ne poate conduce la ghicirea lor, având în vedere că sunt 13.983.816 variante posibile:


Mai sus sunt afișate 6 numere între 1 și 69 la întâmplare, de fiecare dată când reîmprospătați pagina! Succes!

De altfel și jocurile pe calculator conțin numere la întâmplare, numite aleatoare, astfel încât de fiecare dată pare că totul este altfel, un nou scenariu, un nou set de culori, bile ori inamici care apar din poziții diferite:



Botul Kyle din CS:GO ... te cam ia cu AWP-ul din pozițiile clasice de pe hartă, nu e așa? Bineînțeles că are anumite locații pe care le estimează în funcție de mulți factori, există algoritmi avansați A.I., dar... e adesea în altă parte, nu?

Un număr aleator este în esență unul care nu poate fi prezis de utilizator. De fapt, în spate există un generator (o funcție) care ne oferă la fiecare apelare un astfel de număr. Ele sunt pseudo-aleatoare, în sensul că sunt create în urma unor calcule matematice complexe.

Foarte fain! Website-ul [random.org] folosește zgomotul atmosferic și calcule complexe pentru a genera numere aleatoare reale, iar pagina este folosită în foarte multe domenii de activitate.

Cum le generăm în Python 3?

Setul de funcții pe care îl conține implicit limbajul Python nu este foarte mare, însă este extins prin module precum ați văzut în cazul [turtle].

Unul dintre acestea este random, creat special pentru a genera numere aleatoare. Pentru a putea folosi funcțiile sale, la începutul programului vom scrie "import random", care încarcă modulul și ne oferă acces la el:
Editor - lectia13_random.py
       
Rezultatul în consolă done
OBSERVAȚII IMPORTANTE

Am importat modulul random, apoi am tipărit seturi de câte cinci numere aleatoare folosind instrucțiunea for pentru iterații.

Pentru a apela o funcție din cadrul unui modul, scriem:

nume_modul.funcția_dorită

Prima oară am folosit chiar funcția random(), care generează un număr real, de tip float, în intervalul [0.0, 1.0) – funcția nu acceptă parametri.

Bineînțeles, nu ne prea ajută aceste numere... Cum putem însă afișa numere aleatoare întregi între 0 și 100? Sau între 0 și 10000?

Numere întregi

Dacă a fost generat 0.483421... Înmulțindu-l cu 100, se obține 48.3421, care apoi rotunjit spre un număr întreg devine 48.

Înmulțindu-l cu 10000 și rotunjindu-l, se obține 4834...

Dar de la 1 la 100? Păi simplu, adunăm 1 la valoarea generată până la 99, ca mai jos:

round(random.random()*99 + 1)

Numere întregi dintr-un interval

Cum putem genera numere întregi între 20 și 70, spre exemplu?

Putem tipări, precum anterior, numere între 0 și 50. Doar adunăm 20 pentru fiecare număr în parte apoi:

round(20 + random.random()*50)

Să analizăm și alte funcții ale modulului random în cele ce urmează.
Avansează la pagina următoare.
Manuale digitale


Editura noastră oferă de peste 27 de ani manuale şcolare aprobate M.E.N. şi auxiliare ce respectă programa şcolară, precum şi cursuri de Informatică şi T.I.C., utile oricărei persoane care doreşte să se pregătească în aceste domenii.
 home   list  LECȚII   perm_identity   arrow_upward