# Bereich festelgen bei Random



## consch (22. Okt 2009)

Hallo,

ich habe [JAVA=42]Random r = new Random(0,1000);[/code] im Code.
Ist das dann nicht so, dass aus Zahlen von von 0-1000 zufällig eine ausgewählt wird?
Das komische ist auch, dass Java sagt, cannot find symbol.
Woran könnte das liegen oder wie muss ich den Bereich eingrenzen?


----------



## Sonecc (22. Okt 2009)

Diesen Konstruktor gibt es nicht, es gibt nur


```
Random()
```
und

```
Random(long seed)
```

Den Bereich eingrenzen kannst du wie folgt:


```
Random r = new Random()
r.nextInt(1000);
```


----------



## Heady86 (22. Okt 2009)

Ne.

aber so:


```
int i = (int) (Math.random()*1000+1);
System.out.println(i);
```


----------



## Marco13 (22. Okt 2009)

I.a. hat Random gegenüber Math.random einige Vorteile (man bekommt direkt ints, rann mit einem bestimmten seed eines bestimmte Sequenz bekommen (wichtig zum Debuggen)...) weswegen man in den meisten Fällen Random und nicht Math.random verwenden sollte....


----------



## 0x7F800000 (22. Okt 2009)

Marco13 hat gesagt.:


> rann [sic] mit einem bestimmten seed eines bestimmte Sequenz bekommen (wichtig zum Debuggen)...


Man kann beim testen über Reflection die statische Random-variable in der Math Klasse wegsubstituieren, wenn man etwas deterministisches haben will.

Aber man sollte trotzdem für ganze Zahlen eben die entsprechenden Methoden von Random nutzen, weil die double-version viel komplizierter, zeitraubender, und ungenauer ist.


----------



## Der Müde Joe (22. Okt 2009)

>Woran könnte das liegen oder wie muss ich den Bereich eingrenzen? 


```
Random rdm = new Random();
int rdmInt = rdm.netxInt(500) + lowerBoundary; // random int von lowerBoundary bis lowerB + 500
```


----------



## Sonecc (22. Okt 2009)

Der Müde Joe hat gesagt.:


> >Woran könnte das liegen oder wie muss ich den Bereich eingrenzen?
> 
> 
> ```
> ...



Warum machst du das so?


----------



## Der Müde Joe (22. Okt 2009)

>Warum machst du das so? 

Bereich [130, 135)

-->
random.nextInt(5) + 130 --> ein int zwischen 130 inc bis 135 exc


----------



## Sonecc (22. Okt 2009)

:reflect:

gar nicht mal doof. Ok, stimme Joe zu


----------



## consch (22. Okt 2009)

Okay, interessant.
Super  Danke Euch Allen.


----------

