JavaScript:Generovat náhodné číslo v rozsahu

Úvod

Jako vývojáři softwaru se často dostáváme do situací, kdy potřebujeme do našeho kódu vložit dávku náhodnosti.

V tomto článku se podíváme na to, jak generovat náhodná čísla v JavaScriptu. Dotkneme se také několika vestavěných metod pro práci s náhodnými čísly. Nakonec tyto znalosti dobře využijeme napsáním funkce pro simulaci šestistěnné kostky.

Generování náhodných čísel v JavaScriptu

Math.random() v JavaScriptu generuje náhodné číslo s plovoucí desetinnou čárkou mezi 0 a 1 (včetně 0, ale ne 1). Pojďme si to ověřit zavoláním:

console.log(Math.random())

Výsledkem bude číslo s plovoucí desetinnou čárkou podobné:

0.9261766792243478

To je užitečné, pokud máte co do činění s procenty, jako jakoukoli hodnotou mezi 0 a 1 , zaokrouhlené na dvě desetinná místa, lze považovat za percentil.

Generování náhodných celých čísel v rozsahu

Obecně se však nezabýváme čísly s plovoucí desetinnou čárkou v rozsahu 0 až 1. Podívejme se tedy na způsob, jak zaokrouhlit čísla s plovoucí desetinnou čárkou.

Můžeme zaokrouhlit dolů číslo s plovoucí desetinnou čárkou pomocí Math.floor() . Podobně můžeme zaokrouhlit nahoru číslo pomocí Math.ceil() funkce:

console.log(Math.floor(3.6))
console.log(Math.ceil(3.6))

Tím získáme výstup:

3
4

Vygenerujeme náhodné číslo mezi min a max , nezahrnuje max :

function randomNumber(min, max){
    const r = Math.random()*(max-min) + min
    return Math.floor(r)
}

Případně bychom mohli zahrnout max s Math.ceil() místo toho.

Násobíme (max-min) transformovat rozsah [0,1) na [0, max-min ). Dále, abychom získali náhodné číslo v požadovaném rozsahu, přidáme min . Nakonec to zaokrouhlíme na celé číslo pomocí Math.floor() .

Zdarma e-kniha:Git Essentials

Prohlédněte si našeho praktického průvodce učením Git s osvědčenými postupy, průmyslově uznávanými standardy a přiloženým cheat sheetem. Přestaňte používat příkazy Google Git a skutečně se naučte to!

Zavolejme tuto metodu několikrát a pozorujme výsledky:

for (var i = 0; i < 10; i++) {
  console.log(randomNumber(0, 10))
}

Výsledkem bude něco podobného jako:

8
3
3
0
1
1
8
2
8
8

Závěr

Generování pseudonáhodných čísel v programu lze použít k simulaci nepředvídatelnosti nepřátel ve hře nebo k randomizaci lesů v blokové hře, kterou všichni známe a milujeme. Může být také použit k simulaci náhodných vstupů při testování jiného programu, který jste napsali.

Ať tak či onak, generování náhodného čísla je důležitým nástrojem v sadě nástrojů každého inženýra a mělo by být co nejvíce rozšířeno o různé metody generování a algoritmy. Tento článek byl jen prvním krokem k učení generování náhodných čísel.