Losowanie licz z przedziału (-a,b) oraz [-a,b]

0

Witam
Mam mały problem musze wylosowac liczby z przedziału
-0.04 do 0.6
i zastanawiam sie jak to zrobic
(-a,b) oraz [-a,b]

Mógłby mi ktoś pomóc??

0

CZytałem tamten wątek i jest napisane kombinacje

Math.random() <0;1)
Math.random()*10 <0;10)
Math.random()*10 - 5 <-5;5)

czyli kombinacje gdy a=0 lub (-a,a) a nie ma przy różnych liczbach czyli (-a,b)

a Twój przyklad z [a,b] zrobilem sprawdzenie

Random r=new Random();
  double y;
  long l;   
  
for(long i=0; i<1000000;i++)
{
  l=r.nextLong();
  if(l<=0)
  {
     y=-(double)l/double(Long.MIN_VALUE);
  }
  else
  {
     y=(double)l/double(Long.MAX_VALUE);
  }

  y=((b-a)*y)/2+(b+a)/2;
  if (y==1 || y==-1)
  System.out.println(y);
}

I nigdy nie wyświetlil mi y :/

0

Po pierwsze, w złym miejscu sprawdzasz czy y==1(-1), powinno byc tak

  if(l<=0)
  {
     y=-(double)l/double(Long.MIN_VALUE);
  }
  else
  {
     y=(double)l/double(Long.MAX_VALUE);
  }
  // y=((b-a)*y)/2+(b+a)/2;
  if (y==1 || y==-1)
  System.out.println(y);
}

Po drugie, wylosowaleś 1000000 liczb z 9223372036854775807+9223372036854775807+1 mozliwych i się dziwisz, że nie trafiłeś w jeden z dwóch celów (9223372036854775807, -9223372036854775807-1)? Ja bym sie dziwił jak byś trafił.

0

Oki wszystko działa :) Dzieki

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