Generarea numerelor aleatoare în academia java - vertex

Generarea numerelor aleatoare în academia java - vertex

  • scrise de echipa Academiei Vertex. Sperăm că va fi util pentru dvs. Citește plăcut!
  • acesta este unul dintre articolele din "Tutorialul nostru Java"

Generarea numerelor aleatoare în Java este un subiect important și necesar. Într-adevăr, veți avea nevoie de nenumărate ori.







  • când matricea este umplută cu numere aleatorii
  • când amestecați o punte de cărți
  • atunci când selectați un element aleator din secvență
  • și așa mai departe.

Să abordăm acest subiect.

Există mai multe moduri de a genera un număr aleatoriu. În acest articol, vom analiza generarea de numere folosind Math.random ()

În biblioteca de clase Java, există un pachet java.lang care are o clasă Math, iar clasa Math are o metodă random (). Vedeți imaginea de mai jos pentru ajutor.

Generarea numerelor aleatoare în academia java - vertex

Deci, de fiecare dată când se numește Math.random (), se generează un număr aleator folosind un algoritm special (cu o instrucțiune specifică). Este posibil să se prevadă ce număr va fi generat? Teoretic, acest lucru este posibil, dar este foarte dificil de făcut. Și întrucât există încă o mică probabilitate de a prezice care număr va fi generat de algoritm, astfel de numere sunt numite nu aleatoare, ci pseudo-aleatoare.







Ar trebui să știți 3 lucruri:

1. În mod implicit, Math.random () generează numere reale aleatorii din intervalul [0; 1), adică de la zero la 1 inclusiv.

„Până la 1 numai“ - aceasta înseamnă că math.random () nu poate genera numărul 1. E 0999 - adică, orice număr de mai puțin 1.Poprobuyte rula acest cod de aici și a vedea pentru tine pe computer care consola va fi afișată reală numere de la 0 la orice număr, mai puțin de 1.

Pasul 1: Intervalul [0; 1) este înmulțit cu 3. În consecință,

Limita inferioară: 0 * 3 = 0

Limită superioară: 1 * 3 = 3

Am obținut intervalul [0; 3). Consola după numărul 3 este rotundă. Aceasta înseamnă că 3 nu este în intervalul, adică numărul maxim care poate fi generat în acest interval este de 2.999. Într-un cuvânt - avem de-a face cu numere reale (fractionale).

Pasul 2: Prin urmare, aplicați (int) înainte de Math.random () * 3. Partea fracționată este tăiată și obținem intervalul [0; 2]

Dacă luăm în considerare formula noastră, nu se va schimba prea mult.

În cazul unui număr real, iar intervalul superior include b - [a; b]:

(Math.random () * (b - a + 1) + a

Dacă sunt numai numere întregi:

(int) ((Math.random () * (b - a + 1) + a)

Dacă este necesar să se genereze un număr din intervalul [3; 4]. Rețineți că după 4 brațul este pătrat. Aceasta înseamnă că suntem interesați de faptul că gama include numărul 4. Cum să faceți acest lucru? Aici:

Numărul pasului 1: Intervalul [0; 1) este înmulțit cu 2. În consecință,

Limita inferioară: 0 * 2 = 0

Limită superioară: 1 * 2 = 2

Am obținut intervalul [0; 2). Consola după numărul 2 este rotundă. Aceasta înseamnă că 2 nu este în intervalul, adică numărul maxim care poate fi generat în acest interval este de 1.999. Și asta înseamnă că avem de-a face cu un număr real (fracțional).

Pasul 2: Prin urmare, aplicați (int) înainte de Math.random () * 2. Partea fracționată este tăiată și obținem intervalul [0; 1]. Rețineți - intervalul este deja în numărul 1 inclusiv.

Pasul 3: Apoi adăugăm 3 la intervalul [0; 1] În consecință,

Limita inferioară: 0 + 3 = 3

Limita superioară: 1 + 3 = 4

Au primit o nouă gamă [3; 4]

(int) (Math.random () * (4 - 3 + 1) + 3) => (int)

O valoare întregă în intervalul [-100; +100] (100 inclusiv):







Articole similare

Trimiteți-le prietenilor: