Jak działa metoda Math.random - nie rozumiem zakresu losowania.

0

Cześć, sprawdzam zadania które muszę wykonać na zajęcia i zastanawia mnie metoda Math.random. Ta metoda losuje liczbę z przedziału <0, 1>, jak to ma się do mojego zadania, jeśli mam wylosować liczbę z przedziału <1.2, 4.4> ? Jest tu jakiś wzór z którego korzystam podczas obliczania mechanizmu zakładając, że 1.2 to a, natomiast 4.4 to b?

1

Należy liniowo przekształcić zakres <0,1> na <1.2, 4.4>, to przykład gdzie jakieś pojęcie o matematyce przydaje się w programowaniu.
Szukamy funkcji f(x) = ax + b przekształcającej (0,1) w (1.2, 4.4).
W takim razie rozwiązujemy układ równań:
1.2 = a*0 + b
4.4 = a*1 + b
Powodzenia.

0

4.4 - 1.2 = 3.2
Skoro Math.random() daje 0-1 to Math.random()*3.2 daje 0-3.2 a więc Math.random()*3.2+1.2 daje nam 1.2-4.4

0

Udało mi się znaleźć w zeszycie coś takiego. Przedział liczby losowania to:
<1.2, 5.6>, wykładowca rozpisał to w taki sposób: <1.2, 5.6> --> 1.2 + <0, 4.4>, w rezultacie wyszło Math.random() * 4.4 + 1.2;
To znaczy, że A = 1.2 oraz B = 5.6 i dzięki temu: (B - A) + A ?

double r = Math.random() * 4.4 + 1.2;
System.out.println(r);
0
double upperbound = 1.2;
double lowerbound = 4.4;
double result = (double)(Math.random() * (upperbound - lowerbound) + lowerbound);
System.out.println(result);

1 użytkowników online, w tym zalogowanych: 0, gości: 1