From: Tonguç Yumruk (tongucyumruk@interaktif.gen.tr)
Date: Sun 10 Aug 2003 - 18:01:27 EEST
Şimdi, önce rastlantısal sayılar üreten bir fonksiyonun tanımını
yapalım...
Rastlantısal sayılar üreten fonksiyon öyle bir fonksiyon olmalı ki,
tıpatıp aynı girdiyi verdiğinizde bile daima farklı ve birbiriyle
ilişkisi olmayan çıktılar üretmelidir.
Devre örneğine bakarsak bu ikiz devrelere örnekteki gibi bir girdi
verdiğimizde ikisi de farklı çıktılar üretiyorsa bu devreler gerçek
rastlantısal sayıılar üretiyor demektir (tebrikler, kriptolojide bir
devrim yarattınız).
Programlama dillerinde rastgele sayılar üretmek için kullanılan rand()
gibi komutlar sadece pseudo-random denilen türde sayılar üretir. Genelde
bu komutların yaptığı o sırada sisteme ilişkin 2 - 3 veriyi toplayıp
birkaç işlemden geçirmektir. Günlük kullanımda (mesela bir playlist'i
sıralarken) yeterli olurlar, ancak daha ciddi işler için (açık anahtar
şifreleeme gibi) daha rastlantısal sayılara ihtiyaç vardır. Bu nedenle
öneğin GnuPG açık/gizli anahtar çiftlerinizi yaratırken müzik çalmanızı,
klavyeden tuşlara öylesine basmanızı, farenizi oynatmanızı vs... ister.
Bu sayede her ne kadar fonksiyon yine tamamen rastantısal olmayacaksa da
en azından mümkün olduğunca rastlantısal bir girdi sağlanmasını
garantilemeye çalışır.
Sonuçta şu anki teknolojilerimizle tamamen rastlantısal sayılar üretmek
mümkün olmasa da gitkide yaklaşan kuantum bilgisayar teknolojisi,
kuantum'un doğasında varolan bazı tuhaflıklar sayesinde, bu konuda
önümüzde yepyeni ufuklar açıyor. Geleceğin bilgisayarlarında belki
belirsizlik ilkesi ve kaos teorisi temellerine dayanan bazı
algoritmalarla gerçek rastlantısallığı sağlamamız mümkün olacaktır.
"Deterministik yöntemlerle tesadüfi sayı üretmeye kalkan adam kesinlikle
büyük bir günahkârdır"
Thus saith John von Neumann
Sun, Aug 10, 2003 at 04:57:00PM +0300 Tarihinde Volkan YAZICI Demişki :
> merhaba,
>
> uzun zamandir aklimda bir soru vardi (aslinda yaptigim
> arastirmalar da hep tasarladigim cevaplar ile ortusuyordu
> ama) bir de kanaldaki bilgili hocalarima danisayim dedim:
>
> "bir makine sadece kendi basina rasgele sayi uretebilir mi?"
>
> simdi rand() komutlarindan bahsedecekler olacak ama dikkat
> ederseniz o komutlara baktigimiz zaman da sistem uzerinde
> yurutulen islemler ve mimariden yola cikarak bir seyler
> uretiyorlar. yani onlar da tamamen bagimsiz degiller.
>
> ornegin birbirinin ayni cok basit iki devre dusunelim. hepsi
> ayni anda ayni islemlere tabi tutulup tasarlandi. ve bu
> devreler sadece rand komutu icin programlandi. acaba her
> ikisinde de ayni ozellikler oldugu varsayilirsa
> (mimarilerinden tutun o anki nanosaniyede yapmakta
> olduklari isleme ve o islemlerin pid'ine kadar) rand
> komutunu ikisine ayni anda verirsek ayni sayilari uretmezler
> mi?
>
> bu konuda degerli goruslerinizi alirsam cok sevinirim,
> iyi calismalar...
>
>
-- Sevgi Saygı Linux ############################################################################ We are MicroSoft. You will be assimilated. Resistance is futile. (Attributed to B.G., Gill Bates) ############################################################################ Tonguç Yumruk -- Attached file included as plaintext by Ecartis -- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/Nl5H1xWu4MLSyoYRAkYbAKCL+fx17G+GPBgHCWMuhRahonCOqACgv49s TVbt2fhQJKNyCLYelzxjFCM= =b6ER -----END PGP SIGNATURE-----