• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy mój sposób na losowanie liczb jest dobry?

VPS Starter Arubacloud
+2 głosów
505 wizyt
pytanie zadane 13 lipca 2021 w JavaScript przez Doge Gaduła (3,420 p.)

Witam, mam następujący kod:

var luck = 5; //nadanie 5% szans na trafienie
var lucky_number = Math.floor(Math.random()*100)+1; //losowanie numeru
if(lucky_number<=luck)
{
	//losowanie się udało, lucky_number trafiło w luck
}
else
{
	//losowanie się nie udało, nie trafiono w luck
}

Czy jest to dobry sposób na tworzenie losowości czy jest coś lepszego? Np. jakaś wbudowana funkcja czy coś takiego.

Mam również inne pytanie: czy używając

var lucky_number = Math.floor(Math.random()*100)+1;

może się zdarzyć tak, że lucky_number po zaokrągleniu wyniesie 0? Ponieważ wtedy szansa jest większa i trzeba usunąć to +1.

3 odpowiedzi

+1 głos
odpowiedź 13 lipca 2021 przez VBService Ekspert (255,440 p.)
wybrane 13 lipca 2021 przez Doge
 
Najlepsza

Chciałem dodać do tego co napisali @Us i @Borisoveck, że często stosowany jest np. taki zapis  wink

function getRandomNumber(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

const lucky_number = getRandomNumber(1, 100);

 

+5 głosów
odpowiedź 13 lipca 2021 przez Us Użytkownik (880 p.)
Cześć,

To dobry sposób na tworzenie losowości i właśnie użyłeś wbudowanej funkcji. Możesz napisać własną funkcję, tylko po co?

Co do drugiego pytania, w Twoim przypadku nie wyniesie 0, bo po to przecież dałeś "+1" po nawiasie, aby zaczynało się od 1.
+3 głosów
odpowiedź 13 lipca 2021 przez Borisoveck Początkujący (280 p.)

Hmmm... Javascriptem się nie zajmuje ale patrząc na ten kod twierdze że powinien on wygenerować liczby od 1 do 100. Gdybyś nie dał +1 to byłoby od 0 do 99. Wsadziłem ten kod do interpretera i powiem tyle: Ani razu nawet zamieniając 100 na 5 nie wylosowało 0. Myślę że moja odpowiedź cię usatysfakcjonowała, życzę miłego dnia. wink

 

2
komentarz 13 lipca 2021 przez Doge Gaduła (3,420 p.)
A no tak, zapomniałem, że to +1 odnosi się do wylosowanej liczby, a nie do zakresu. Dziękuję i również życzę miłego dnia.

Podobne pytania

0 głosów
1 odpowiedź 453 wizyt
pytanie zadane 3 kwietnia 2017 w C i C++ przez Undisputed Gaduła (3,040 p.)
0 głosów
2 odpowiedzi 594 wizyt
pytanie zadane 6 października 2018 w PHP przez damian9901 Bywalec (2,140 p.)
0 głosów
1 odpowiedź 710 wizyt
pytanie zadane 11 marca 2018 w Matematyka, fizyka, logika przez LFC Nowicjusz (120 p.)

92,832 zapytań

141,777 odpowiedzi

320,824 komentarzy

62,163 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...