Bilgisayarın üretebileceği random sayılar tahmin edilebilir mi?

GT 145

Decapat
Katılım
29 Temmuz 2021
Mesajlar
724
Çözümler
1
Arkadaşlar bilgisayarlar tamamıyla random sayı üretmiyorlar diye biliyorum. O yüzden aklıma şu soru takıldı. Bilgisayarın üretebileceği random sayılar tahmin edilebilir mi?
 
Nasıl random sayı üretildiği bilinirse veya yeterince üretilmiş random sayı örneğiniz varsa neye göre üretildiğini, en azından standart sapmasını bularak tahmin şansınızı arttırırsınız. Sonuçta tamamen random olamaz.

Fakat üretilen sayı fizik kurallarına dayanıyorsa bulamazsınız ( Kuantum Süper Pozisyon :) )
 
Hocam şahsi fikrim: çok eski dönemlerde tahmin edilebilirdi fakat şuan imkansız İnsanlardan daha random sayılar üretiyorlar. En basitinden Taş Kağıt Makas oyununda özel bir algoritma yazılmadıysa bir makine 1/3 şansı kullanır fakat insanlarda erkeklerin kadınlara göre çok daha fazla taş yaptığı veya yaşa bağlı istatistikler bu oranı bozar.
 
Çoğu bilgisayar zamanını baz alıyor.
Hangi algoritma olduğu, bilgisayar zamanı ve hangi anda işlemcide çalıştığını bilmek gerekir. Bir hayli zor. Ve bir o kadar da anlamsız. Rastgele şeylerdeki amaç rastgele olması. Yeterince şey eklersen yeterince rastgele yaparsın. Geri söndüreceksen ona göre seed kullan.
 
Edilebilir.
Şöyle anlatayım, mesela kullandığınız programlama dilinin random integer generate eden fonksiyonunu kullanmadan 0-9 aralığında bir random sayı üreteceksiniz, bir algoritma üretmeniz gerekiyor bunun için. Mesela o anki system zamanının son hanesini almaya karar verdiniz, 1349334429997 şeklinde system zamanının milisaniye cinsinden değeri var diye düşünün, son hane nedir, 7. Kullanıcı her random sayı istediği zaman 7, 0, 3, 7, 5 vb. diye random sayı yazdırıyorsunuz ekrana. Bu sayı random değildir, pseudo-random diye geçer, çünkü bir temele dayanmaktadır (system zamanı), yani system zamanına erişimi olan başka bir program ya da insan tarafından tahmin edilebilir. Bu çok basit algoritmayı istediğiniz kadar zorlaştırın, eğer bir temele dayanıyorsa (system zamanı, o anda ekrandaki piksellerin renk kodlarını kullanan bir algoritma, o anki systemin bir noktasındaki voltaj değerini kullanan algoritma vb. vb.) bu sayı pseudo-random olacaktır, sadece tahminlemesi daha güç olur. Standart kullanıcının kullandığı standart uygulamalarda bu sorun bir fark yaratmaz, önemsenecek seviyede değildir. Ancak işin içine sistem güvenliği vb. girince bu fark önem kazanır. Ben de konuya hakim değilim, internette araştırabilecek merak eden arkadaşlar ilginç bir şeyler öğrenirlerse paylaşırlarsa fena olmaz bu konuda.
 
Edilebilir.
Şöyle anlatayım, mesela kullandığınız programlama dilinin random integer generate eden fonksiyonunu kullanmadan 0-9 aralığında bir random sayı üreteceksiniz, bir algoritma üretmeniz gerekiyor bunun için. Mesela o anki System zamanının son hanesini almaya karar verdiniz, 1349334429997 şeklinde System zamanının milisaniye cinsinden değeri var diye düşünün, son hane nedir, 7. kullanıcı her random sayı istediği zaman 7, 0, 3, 7, 5 vb. diye random sayı yazdırıyorsunuz ekrana. Bu sayı random değildir, pseudo-random diye geçer, çünkü bir temele dayanmaktadır (System zamanı), yani System zamanına erişimi olan başka bir program ya da insan tarafından tahmin edilebilir. Bu çok basit algoritmayı istediğiniz kadar zorlaştırın, eğer bir temele dayanıyorsa (System zamanı, o anda ekrandaki piksellerin renk kodlarını kullanan bir algoritma, o anki System'in bir noktasındaki voltaj değerini kullanan algoritma vb. vb.) Bu sayı pseudo-random olacaktır, sadece tahminlemesi daha güç olur. Standart kullanıcının kullandığı standart uygulamalarda bu sorun bir fark yaratmaz, önemsenecek seviyede değildir. Ancak işin içine sistem güvenliği vb. girince bu fark önem kazanır. Ben de konuya hakim değilim, internette araştırabilecek merak eden arkadaşlar ilginç bir şeyler öğrenirlerse paylaşırlarsa fena olmaz bu konuda.

Çoğu bilgisayar zamanını baz alıyor.
Hangi algoritma olduğu, bilgisayar zamanı ve hangi anda işlemcide çalıştığını bilmek gerekir. Bir hayli zor. Ve bir o kadar da anlamsız. Rastgele şeylerdeki amaç rastgele olması. Yeterince şey eklersen yeterince rastgele yaparsın. Geri söndüreceksen ona göre seed kullan.

Nasıl random sayı üretildiği bilinirse veya yeterince üretilmiş random sayı örneğiniz varsa neye göre üretildiğini, en azından standart sapmasını bularak tahmin şansınızı arttırırsınız. Sonuçta tamamen random olamaz.

Fakat üretilen sayı fizik kurallarına dayanıyorsa bulamazsınız ( kuantum süper pozisyon :) )

Hocam aklıma bahis sitelerinde hile kullanılabilir mi o takıldı😂(oynamıyorum tabiikide merak ettim sadece).
 
Arkadaşlar bilgisayarlar tamamıyla random sayı üretmiyorlar diye biliyorum. O yüzden aklıma şu soru takıldı. Bilgisayarın üretebileceği random sayılar tahmin edilebilir mi?
Bilgisayarın üretebileceği random sayılar tahmin edilebilir ama bilinemez. Algoritmanın hangi aralıklarda kaç sonuç verdiğini yeterince gözlemler ve doğru verilerle Correlation'ları bulursanız belli bir doğruluk oranında tahmin gerçekleştirebilirsiniz.


Bunun önüne geçebilmek adına özellikle kimlik gibi hassas bilgiler için uuid(Universally Unique Identifier) algoritması gibi algoritmalar ile random string üretiliyor.
 

Geri
Yukarı