Şimdi Ara

Javada random komutu çıktısı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
279
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar öncelikle,
    Java veya herhangi bir yazılım dilinde iyi değilim yeni yeni öğreniyorum. bir tür şans oyunu gibi bir şey yazmaya taktım bu aralar. Random komutu ile ilgili bir şey sormak istiyorum. İnternette biraz araştırdığım kadarıyla random komutu bilgisayarın saatini milisaniye bazında komplike bazı işlemlerden geçiriyor. Ve sonuç olarak 0-1 arası bir çıktı veriyor. Herhangi iki bilgisayarın milisaniye bazında saatleri aynı ise random komutları aynı sonucu mu vericek aynı anda çalıştığı durumda ? Asıl öğrenmek istediğim de bu random komutuna hangi saati baz alıcağını söyliyebilir miyiz veya random komutunun ne gibi işlemlerden geçirdiğini öğrenip girdiyi kendimiz verip aynı sonucu alabilir miyiz ?



  • Kisa cevap, evet bu dedigin mumkun. Hatta sirf bunun icin "Secure Random" algoritmalari var, 3. kisiler senin generate ettigin random sayiyi bulamasinlar. Hatta hatta, sadece bunu yapan ozel donanimlar var. Yani gercekten random sayi uretmeni saglayan elektrik devreleri.

    Random sayiyi uretirken kullanilan algoritma ve seed ayni ise ayni random sayiyi elde edersin. Ornek Random r = new Random(5); r.nextInt() dedigin zaman hep ayni sayi dizisini elde edersin. Ustelik, baska bir bilgisayarda arka arkaya generate edilen random sayilari ogrenebilirsen, o bilgisayardaki seed degerini de bulabilirsin. Boylelikle guvenlik acigi yakalamis olursun. Genelde en fazla kullanilan algoritma Linear Congruential algoritmasi.
    https://en.wikipedia.org/wiki/Linear_congruential_generator

    < Bu ileti tablet sürüm kullanılarak atıldı >




  • Tesekkurler, Yani simdi mesela javascriptteki math.random komutu seed olarak bilgisayarin saatini mi kullaniyor ? Bir de merak ettigim random komutu bu seed i nasil bir isleme tabi tutuyor. Ben elimde milisaniyesine kadar olan bir saatte java scriptte math.random komutunun verecegi sonucu manuel olarak hesaplamak istiyorum.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Javascript için her yorumlayıcı (çoğunlukla tarayıcı) kendine has bir yöntemle rastgele sayı buluyor. Genellikle zaman kullanılmıyor veya tek başına kullanılmıyor.

    Java için konuşacak olursakhttp://docs.oracle.com/javase/8/docs/api/java/util/Random.html adresine bakabilirsin, System.nanoTime() değerini kaynak olarak alıyor. O değeri bildiğin sürece aynı methodla aynı çıktıyı üretmen mümkün.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.