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

question-closed Generowanie (pseudo)losowych liczb z zadanego przedziału.

Object Storage Arubacloud
+2 głosów
33,456 wizyt
pytanie zadane 6 kwietnia 2015 w Java przez BlupiSpidi Użytkownik (960 p.)
zamknięte 11 kwietnia 2015 przez BlupiSpidi
Witajcie!

Mam pytanie odnośnie generowania losowych liczb z zadanego przedziału. Czy jest to możliwe przy wykorzystaniu klasy Random z java.util? Jeżeli tak, to proszę o jakieś podpowiedzi, bo za żadne skarby nie mogę sobie z tym poradzić.
komentarz zamknięcia: otrzymana odpowiedz jest zadowalająca

4 odpowiedzi

+6 głosów
odpowiedź 6 kwietnia 2015 przez Harsay Pasjonat (23,640 p.)
edycja 6 kwietnia 2015 przez Harsay

Losowanie liczb całkowitych.

Należy stworzyć obiekt klasy Random i wykorzystać metodę nextInt. Należy pamiętać, że ilość liczb jest liczona od zera!

Losowanie liczby od 0 do 5.

Random rand = new Random();
int a = rand.nextInt(6);

Losowanie liczby od 5 do 10

Random rand = new Random();
int a = rand.nextInt(6) + 5;

Losowanie liczby od x do y

Random rand = new Random();
int a = rand.nextInt(y - x + 1) + x;

Losowanie liczb rzeczywistych (float i double).

Ponownie stosujemy obiekt klasy Random ale stosujemy metodę nextFloat lub nextDouble, które zwracają wartości od 0.00 do 1.00 danego typu.

Losowanie liczby od 0.00 do 1.00

Random rand = new Random();
double d = rand.nextDouble();
float f = rand.nextFloat();

Losowanie liczby od 0.00 do 5.00

Random rand = new Random();
double d = rand.nextDouble() * 5;
float f = rand.nextFloat() * 5f;

Losowanie liczby od x do y (x i y muszą być odpowiedniego typu!)

Random rand = new Random();
double d = rand.nextDouble() * (y - x) + x;
float f = rand.nextFloat() * (y - x) + x;

 

0 głosów
odpowiedź 6 kwietnia 2015 przez tigeromichal Obywatel (1,060 p.)
edycja 6 kwietnia 2015 przez tigeromichal

Math.floor(Math.random() * (b-a+1) + b);

Math.random() generuje liczbe z zakresu <0,1>

a - lewy koniec przedziału, b - prawy

0 głosów
odpowiedź 6 kwietnia 2015 przez nowyfolder Mądrala (7,250 p.)
Witam, nie widzę w tym żadnego problemu. Powinna wystarczyć metoda nextInt(). Nastenie można sobie wyniki przeskalować jak tylko chcemy, dodając odpowiednie przesunięcie
https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt-int-
0 głosów
odpowiedź 6 kwietnia 2015 przez BlupiSpidi Użytkownik (960 p.)
Dziękuję za szybkie odpowiedzi. Udało mi się rozwiązać problem :)

Podobne pytania

0 głosów
1 odpowiedź 5,707 wizyt
pytanie zadane 13 stycznia 2017 w C i C++ przez Szminka93 Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 4,729 wizyt
pytanie zadane 26 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
1 odpowiedź 447 wizyt
pytanie zadane 15 listopada 2018 w Java przez allenkun Początkujący (400 p.)

92,624 zapytań

141,482 odpowiedzi

319,822 komentarzy

62,005 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!

...