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

javascript - losowość z prawdopodobieństwem

Object Storage Arubacloud
0 głosów
797 wizyt
pytanie zadane 20 maja 2017 w JavaScript przez bobobob Użytkownik (790 p.)
zmienione kategorie 20 maja 2017 przez Arkadiusz Waluk
Cześć,

chciałbym generować jakąś tabelę, która uzupełniała by się w sposób losowy. (Math.random)Przykładowo w kolumnie byłby wiek i w kolumnie losowo miałyby się znajdować wartości z przedziału 0-100. Chciałbym jednak zagęścić prawdopodobieństwo - tak, żeby częściej zdarzały się wyniki 20-40 aniżeli pozostałe. Jak to zrobić w JavaScripcie/jQuery ?
komentarz 20 maja 2017 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Zły dział... Czy javascript to C/C++?

2 odpowiedzi

+1 głos
odpowiedź 21 maja 2017 przez Kornelia Kobiela Nałogowiec (33,340 p.)

Funkcja random normalnie zwraca pseudolosową liczbę w zakresie 0-1. Można to potraktować jako wartości procentowe. Aktualnie prawdopodobieństwo wypadnięcia liczby z danego przedziału jest równe 0,2. Jeśli chcesz zwiększyć prawdopodobieństwo wystąpienia, to pomyśl jak bardzo. Bo można to zrobić tak:

  • Ustalasz sobie prawdopodobieństwo, z jakim chcesz, żeby dana liczba się pojawiała. Np. 0.3. W rzeczywistości pojawi się z większym, ale o tym za chwilę. 
  • Losujesz liczbę i sprawdzasz if (liczba < 0.3) i wtedy Losujesz liczby z przedziału 20 - 40 
  • W innym wypadku losujesz liczby z przedziału 0-100 ( tam też się mogą zjawić liczby z zadanego przedziału 20-40, więc ogólnie ich prawdopodobieństwo jest wyższe. 
  • Jeśli chcesz mieć dokładnie określone prawdopodobieństwo, to możesz np. Stworzyć dwie tablice z liczbami, gdzie jedna będzie zawierać liczby 20-40, a druga pozostałe. Wtedy losujesz z tablic
komentarz 21 maja 2017 przez niezalogowany

Funkcja random normalnie zwraca pseudolosową liczbę w zakresie 0-1

w zakresie [0, 1)

+1 głos
odpowiedź 21 maja 2017 przez Strategiusz Dyskutant (9,220 p.)
Można to zrobić dosyć prymitywnie, bez używania jakichś matematycznych wzorów. Robisz tablicę z możliwymi do wylosowania wartościami (liczbami z wiekiem), ale wyniki, które mają się losować częściej, niech się w niej powtarzają. W ten sposób można dowolnie dopasować sobie jak często ma się co losować. Potem już tylko zrobić funkcję, która będzie losować indeks tej tablicy i w ten sposób wybierać wiek.
komentarz 21 maja 2017 przez bobobob Użytkownik (790 p.)
Ten sposób nie bardzo mi odpowiada bo powiedzmy, że do osób z wiekiem 18-30 lat będę chciał dać losowo (przykład) zarobki między 2000-3000 zł, a do osób z wiekiem 31-50 lat (których wylosowanie będzie największe) zarobki 5000-7000 zł, także deklarowanie tablicy z powtarzalnymi wartościami nie ma sensu i nie zadowala mnie takie zastosowanie. Natomiast zagnieżdżenia if w ifie już mają większy sens, natomiast zastanawiam się czy nie ma gotowych rozwiązań np na krzywą gaussa, czy inne sposoby na inne rodzaje prawdopodobienstw.

Podobne pytania

0 głosów
3 odpowiedzi 1,698 wizyt
0 głosów
2 odpowiedzi 2,924 wizyt
pytanie zadane 10 grudnia 2016 w Algorytmy przez tyskocz Nowicjusz (230 p.)
+1 głos
2 odpowiedzi 623 wizyt
pytanie zadane 14 października 2021 w JavaScript przez Admak Początkujący (340 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...