JavaScript Tasodifiy Sonlar (Random)
Math.random() metodi 0 (shu jumladan) va 1 (jumladan emas) orasidagi tasodifiy son qaytaradi.
Misol
js
// Tasodifiy son qaytaradi:
Math.random();1. Math.random() qanday ishlaydi?
Math.random() 0.0 dan 0.9999... gacha bo'lgan suzuvchi nuqtali (floating-point) son qaytaradi. U hech qachon 1 ga teng bo'lmaydi.
2. Tasodifiy butun sonlar
Math.random() ni Math.floor() bilan birgalikda ishlatib, tasodifiy butun sonlar olish mumkin.
Eslatma
JavaScript-da alohida "integer" (butun son) turi yo'q. Bu yerda kasr qismisiz sonlar haqida gapyapmiz.
0 dan 9 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 10);Tushuntirish:
Math.random()— 0 dan 1 gacha (1 kiritilmagan) suzuvchi nuqtali son qaytaradi. Masalan: 0.0, 0.237, 0.9999 — lekin hech qachon 1 emas.Math.random() * 10— 0 dan 10 gacha (10 kiritilmagan) oraliqda son beradi. Masalan: 0.0, 3.5, 9.99 va h.k.Math.floor()— sonni pastga (kichik butun songa) yaxlitlaydi:- 3.5 → 3
- 9.99 → 9
- 0.1 → 0
- Natijada mumkin bo'lgan butun sonlar: 0 dan 9 gacha (ikkalasi ham kiritilgan), ya'ni
[0, 9].
0 dan 10 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 11);0 dan 99 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 100);0 dan 100 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 101);1 dan 10 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 10) + 1;Tushuntirish:
Math.random()— 0 dan 1 gacha (1 kiritilmagan) son qaytaradi.- 10 ga ko'paytirish — 0 dan 10 gacha (10 kiritilmagan) oraliq beradi.
- 1 qo'shish — oraliqni 1 dan 11 gacha (11 kiritilmagan) ko'chiradi.
Math.floor()pastga yaxlitlaydi, natijada 1 dan 10 gacha butun son olinadi.
1 dan 100 gacha (ikkalasi ham kiritilgan)
js
Math.floor(Math.random() * 100) + 1;3. Xulosa jadvali
| Ifoda | Boshlang'ich | Oxirgi |
|---|---|---|
Math.random() | 0 | <1 |
Math.random() * 10 | 0 | <10 |
Math.random() * 100 | 0 | <100 |
Math.floor(Math.random() * 10) | 0 | 9 |
4. To'g'ri tasodifiy funksiya
Har safar yangi formula yozmaslik uchun, universal funksiya yaratish foydali:
min (kiritilgan) — max (kiritilmagan) orasida
js
function tasodifiy(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}min va max (ikkalasi ham kiritilgan) orasida
js
function tasodifiy(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}