Véletlen szám generáció java - vertex akadémia

Véletlen szám generáció java - vertex akadémia

  • írásbeli Vertex Akadémia csapata. Remélhetőleg hasznos lesz az Ön számára. Élvezze az olvasást!
  • ez az egyik cikkek a „bemutatója a Java”

Véletlen szám generálás Java - fontos és szükséges a témában. Sőt, ha szükség van rá számtalanszor.







  • kitöltésekor egy sor véletlen számok
  • amikor csoszogó egy pakli kártya
  • a választás egy véletlenszerű elemet a szekvencia
  • stb

Nézzük foglalkozik ezzel a témával.

Számos módja van, hogyan kell létrehozni egy véletlen számot. Ebben a cikkben megnézzük a generációs számok segítségével Math.random ()

A Java osztály könyvtárak java.lang csomagot, amely egy Math osztály, míg a Math osztály van random () metódust. Lásd. Az alábbi képen segítséget.

Véletlen szám generáció java - vertex akadémia

Tehát minden egyes hívás Math.random () c egy speciális algoritmus (egy adott utasítás) által generált véletlen számot. Vajon lehet megjósolni, milyen számot fog generálni? Ez elméletileg lehetséges, de nagyon nehéz csinálni. És mivel még mindig van egy kis esély, hogy megjósolni, hogy mi a szám jön létre algoritmus, mint a számok nevezzük nem véletlenszerű és pszeudo.







Meg kell tudni, hogy 3 dolog:

1. alapértelmezett Math.random () generál véletlen valós szám a [0; 1), vagyis zéró és 1, beleértve a kizárólag.

„Akár 1 only” - ez azt jelenti, hogy a Math.random () nem lehet generálni a számot, hogy 1. 0999 - vagyis bármennyi kevésbé 1.Poprobuyte ezt a kódot ide és nézd meg magad a számítógépen, hogy a konzol jelenik meg a valós 0-tól bármilyen számú kisebb, mint 1.

Lépés №1: [0, 1) megszorozzuk 3. Ennek megfelelően,

Alsó határ: 0 * 3 = 0

A felső határ 1 * 3 = 3

Kapott tartomány [0; 3). Miután a konzol 3 kerek. Ez azt jelenti, hogy 3 tartománytól, vagyis a maximális számát, amelyek során keletkezett ez a tartomány 2999. Röviden - van dolgunk egy igazi (tört) szám.

Lépés №2: miért használja (int), mielőtt a Math.random () * 3. A tört része van vágva, és megkapjuk a [0, 2]

Ha figyelembe vesszük a képlet, hogy nem igazán sokat változott.

Ha a valós szám, és a felső sáv tartalmazza b - [a; b]:

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

Ha akár csak egész:

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

Ha szükség van, hogy létrehoz egy számot, az [3, 4]. Kérjük, vegye figyelembe, hogy miután 4 szögletes zárójel. Ez azt jelenti, hogy mi érdekli, hogy a tartomány tartalmazza a 4-es számú Hogyan kell csinálni? Íme:

Lépés №1: [0, 1) megszorozzuk 2. Ennek megfelelően,

Alsó határ: 0 * 2 = 0

Felső határ: 1 * 2 = 2

Kapott tartomány [0; 2). A konzol 2 szám után kerek. Ez azt jelenti, hogy 2-ből a tartomány, azaz a legnagyobb szám, amely lehet generálni ebben a tartományban 1999. Ez azt jelenti, hogy van dolgunk egy igazi (tört) számmal.

Lépés №2: miért használja (int), mielőtt a Math.random () * 2. A tört része van vágva, és megkapjuk a [0, 1]. Megjegyzés - tartomány már az 1. számú beleértve.

Lépés №3: Továbbá az a [0; 1] hozzátesszük 3. Ennek megfelelően,

Alsó határ: 0 + 3 = 3

Felső határ: 1 + 3 = 4

Kapott új tartomány [3; 4]

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

Egész értéket a tartományban [-100; 100] (100 beleértve):




Kapcsolódó cikkek