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
|
|
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.
Cărțile editurii noastre
O parte dintre manualele și culegerile de probleme se găsește și [
în format electronic]
securizat sub formă
de fișier *.pdf.
"
O cameră fără cărţi este ca un corp fără suflet."
(G. K. Chesterton)
Cursanții au mai cumpărat ...
[
vezi lista completă a cărților]