Pisząc programy w Javie często potrzebujemy wylosować jakąś wartość. Standardowo mamy dwie możliwości wygenerowania liczby pseudolosowej. Pierwsza, to skorzystanie z klasy
Random dostępnej w pakiecie
java.util. Klasa ta zawiera szereg przydatnych metod generujących liczby losowe. Wadą tego rozwiązania jest konieczność utworzenia nowego obiektu.
// wykorzystujemy klasę Random z pakietu java.util
import java.util.*;
/**
* Generowanie liczb pseudolosowych
* @author kodatnik.blogspot.com
*/
public class LiczbyPseudolosowe {
public static void main (String[] args) {
// tworzymy obiekt klasy Random
Random rand = new Random();
// metoda nextInt() zwraca liczbę całkowitą (pełny zakres)
int liczbaCalkowita = rand.nextInt();
// metoda nextInt(int n) zwraca liczbę z zakresu >= 0 do < n-1
int liczbaCalkowitaZakres = rand.nextInt(10);
// metoda nextDouble() zwraca liczbę rzeczywistą z zakresu >= 0.0 do < 1.0
double liczbaRzeczywista = rand.nextDouble();
System.out.println ("Wylosowana liczba całkowita: " + liczbaCalkowita);
System.out.println ("Wylosowana liczba całkowita z zakresu <0, 10): " + liczbaCalkowitaZakres);
System.out.println ("Wylosowana liczba rzeczywista z zakresu <0.0, 1.0): " + liczbaRzeczywista);
}
}
Uruchomiona aplikacja:
Wylosowana liczba całkowita: 1133804662
Wylosowana liczba całkowita z zakresu <0, 10): 0
Wylosowana liczba rzeczywista z zakresu <0.0, 1.0): 0.06242174947663559
Drugi sposób to wykorzystanie statycznej metody
random() dostępnej w klasie
Math. Generuje ona pseudolosową liczbę rzeczywistą z zakresu od 0.0 włącznie do 1.0 wyłącznie. Tak otrzymaną liczbę zazwyczaj musimy przemnożyć przez odpowiednią wartość oraz dokonać rzutowania do pożądanego typu. Na przykład, gdy chcemy uzyskać liczbę z zakresu od 1 do 10, musimy posłużyć się takim kodem:
int liczbaLosowa = (int) (Math.random() * 10 + 1);
Często potrzebujemy liczbę z zadanego zakresu. Poniższa metoda
losuj(int, int) generuje liczby losowe całkowite z zakresu przekazanego jako parametry jej wywołania.
/**
* Generowanie liczb pseudolosowych
* @author kodatnik.blogspot.com
*/
public class LiczbyPseudolosowe {
// metoda zwraca liczbę całkowitą z zakresu >= min do < max
public static int losuj(int min, int max) {
return (int) (Math.random() * (max - min) + min);
}
public static void main (String[] args) {
// Losujemy 10 liczb całkowitych z zakresu od 20 do 40
for (int i = 0; i < 10; i++)
System.out.print(losuj(20, 40) + " ");
}
}
Uruchomiona aplikacja:
25 34 20 22 23 22 36 26 30 34
1 Komentarz - Liczby pseudolosowe
mozna sie duzo dowiedziec
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)