24 Temmuz 2018 Salı

Random Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.Random;
Açıklaması şöyle. nextLong() metodu tüm long aralığını dönmez.
Java's java.util.Random class uses a 48-bit seed, so doesn't meet the statistical-random requirements. However, a subclass of java.util.Random might be implemented to meet those requirements.
Bu sınıf algoritması belli olduğu için "stable" sonuçlar üretir. Yani aynı seed'i verirsek aynı sonuçları elde ederiz.

Bu sınıf kriptografik olarak güvenli değil. Bu iş için SecureRandom sınıfı kullanılmalı.

constructor
Şöyle yaparız.
Random random = new Random ();
constructor - long
Şöyle yaparız.
Random random = new Random (System.nanoTime());
ints metodu - size
IntStream döner.
Örnek
1000 tane sayı üretmek için şöyle yaparız.
Map<Integer, Integer> map = new HashMap<>();
Random random = new Random ();
random.ints (1000).forEach (n -> map.put(n, n));
ints metodu - lower + upper (exclusive)
Açıklaması şöyle. Belirtilen aralıkta sayı içeren sonsuz bir IntStream döner.
an effectively unlimited stream of pseudorandom int values, each conforming to the given origin (inclusive) and bound (exclusive).
Örnek
Şöyle yaparız
Random random = new Random();
Stream<Integer> boxed = random.ints(0, 100000000).boxed();
Örnek
Şöyle yaparız.
int[] numbers = new Random().ints(1, 46).distinct().limit(6).toArray();
Örnek
Şöyle yaparız.
Random r = new Random();

r.ints(1,10)
        .distinct()
        .limit(9)
        .forEach(System.out::println);
Çıktı olarak şunu alırız.
9 8 4 2 6 3 5 7 1
ints metodu - count + lower + upper
Belirtilen aralıkta belirtilen değer kadar sayı üretir. Aralığın üst ucu sonuca dahil değildir.
Örnek
[0 - 10] arasında 5 tane sayı üretmek için şöyle yaparız.
Random r = new Random();
int[] fiveRandomNumbers = r.ints(5, 0, 11).toArray();
Örnek
Şöyle yaparız
Random random = new Random(); 
IntStream stream = random.ints(5, 1, 10);

System.out.println(Arrays.toString(str.toArray())); // convert to array

/* 
Generates a stream of 5 random integers between 1 (inclusive) and 10 (exclusive) 
*/ 
nextBoolean metodu
Şöyle yaparız.
boolean b= rand.nextBoolean();
nextDouble metodu
nextDouble() metodu [0.0 , - 1)  aralığında sayı üretilir.

nextFloat metodu
Açıklaması şöyle
public float nextFloat()
Returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from this random number generator's sequence.
Şöyle yaparız.
random.nextFloat ();
nextInt metodu
32 bitlik sayılar üretir.
int i = random.nextInt ();
nextInt + üst sınır
[0 - n) arasında sayı üretir. Şöyle yaparız.
int n = ...;
int i = random.nextInt (n);



Hiç yorum yok:

Yorum Gönder