none
Rastgele sayi oluşturucu RRS feed

  • Soru

  • Merhaba C# ta rastgele sayi olusturan bir program yaptım.Kullanıcı şuan 0 ile bir milyar(1.000.000.000) arası sayı üretebiliyor fakat sorun şu ki bir milyar üstü sayilarida katmak istiyorum ama olmuyor hata veriyor. Değişken olarakta bildigim kadarıyla en büyük tam sayı değişkeni long' u kullandım. bu sorunu nasıl çözebilirim.
    28 Ağustos 2019 Çarşamba 11:10

Yanıtlar

Tüm Yanıtlar

  • byte düzeyinde rastgele oluşturmanız kafi. 8 tanesini yanyana eklerseniz long yapar.

    www.cihanyakar.com

    28 Ağustos 2019 Çarşamba 11:22
  • teşekkürler
    28 Ağustos 2019 Çarşamba 11:30
  • Deleted
    28 Ağustos 2019 Çarşamba 17:38
  • Random sınıfı sistem saatini mi kullanıyor ? Hayır tabii ki. Başlangıç değerini boş geçersen saati alır.Ama algoritmanın saat ile zerre ilgisi yok. Farklılık saatten kaynaklamıyor. 

    www.cihanyakar.com





    28 Ağustos 2019 Çarşamba 18:25
  • Deleted
    28 Ağustos 2019 Çarşamba 18:40
  • Rastgelelik konusunda Random sınıfından daha başarılıdır. Çünkü sistem saatini kullanmadan sayı üretiyor.

    Ben diyorum ki Random sınıfının algoritmasında sistem zamanı kullanılmıyor. Sen de diyorsun ki parametresiz yapıcı metodu seed değeri olarak sistem zamanını kullanıyor o sebeple sistem zamanını kullanıyor kabul edebiliriz. Peki RNGCS algoritmasının içinde sistem zamanını kullanıyor onu ne yapacağız? Bu ikisinin arasındaki fark sistem zamanından çok daha öte.

     
    Ama bence gereksiz, RNGCryptoService tek başına yetiyor da artıyor bence.

    Bugüne kadar kullandığın senaryolarda yetmiştir. Fakat RNGCS'nin iki büyük dezavantajı var. 1. çok yavaş, 2. tekrarlanabilir değil.  Bu sebeple oyunlarda, şifreleme algoritmalarının içinde vs kullanılamıyor. 


    www.cihanyakar.com


    28 Ağustos 2019 Çarşamba 19:46
  • Deleted
    29 Ağustos 2019 Perşembe 08:10
  • Doğru okumuşsun. Ama anahtar oluşturmak için kullanıyor. Sistem saati de dahil olmak üzere bir çok değişkeni kullanarak rastgele dağılıma daha uygun sayılar oluşturuyor. Random sınıfı ise aslında oldukça statik ve ürettiği sayıların dağılımının entropisi daha düşük. Algoritmanın içine girdiğimiz zaman algoritmanın tekrarlanabilir olması gerekiyor. Zira içinde rastgelelik barındıran çift yönlü bir şifreleme algoritması yazmak istersen aynı rastgele sayıların aynı sırayla üretilmesi gerekir ki bunu geri açabilme şansın olsun. Veya hash algoritması yazıyorsan belirli bir değer için her zaman aynı hashi üretmek istersin :)


    www.cihanyakar.com



    29 Ağustos 2019 Perşembe 09:59