From: a.kadir altan (e108193@metu.edu.tr)
Date: Mon 11 Aug 2003 - 12:22:17 EEST
sistem saatinden kastiniz windows'un tikleri mi (bildigimiz saati degil
sayaci kastim, ismi herneyse) yoksa cpu'nun sayaci mi?... ikisi icinde
bildigim hic de fena olmayan birer yol var aslinda...
rdtsc ile alinan bir degerden sonra sleep(1) yapin, ve ikinci bir tane alin,
iki degerin lsb'lerini XOR layin ... multiprocess sistemlerde ozellikle
surekli yogun calisma durumunda bir sorun cikmaz gibi geliyor bana...
saniyede 100 real-random bit eder...
windows'tan GetTickCount() ile alacaginiz tickleri kullanaiblirsiniz...tabi
bu da bilgisayar acildigindan itibaren bir sayac olacagindan direk kullanmak
mantikli olmayacaktir... gelelim metoda: bir tane aliyorsunuz, ikinci
orneginiz farkli olana kadar while ile bir sayaci +1 yapiyorsunuz (bir
sayiyi ^1 yapmakta ayni anlamda aslinda, lsb'yi degistirmek icin).. farkli
oldugunda sayacinizin lsb'sini &1 yaparak okuyorsunuz... bir bit
aliyorsunuz... bu bir fonksiyonumuz olsun... sonra do while ile bununla 2
tane bit elde ediyorsunuz, ta ki ikisi de farkli olana kadar, farkli
oldugunda bunlardan bir tanesi isinizi gorecektir... olayin 2 basamakta
olmasi farkli isler yaptigi icindi, cok zaman oldu ne oldugu ezberimde yok,
biraz incelemem lazim... saniyede 18 tick veriyor diye duymustum(yanlissa
duzeltin lutfen) bu da hic fena degil yani...
birincisine gore ikincisi daha mantikli geliyor bana... icgudusel olarak
sanki birincisinde processlerin sabit seyler olmasi halinde bir sorun
yaratacakmis gibi geliyor ama ben rastlamadim... ve tabi yine icgudusel
olarak 2.sinin daha yavas olmasi sanki daha genis bir entropiye
hakimmissiniz hissi veriyor, icgudusel-random-generator? .. :) ehehe...
ikisini de zamaninda elimdeki random-sequence degerlendirme testlerinde
(netten bulabilirsiniz kolaylikla) denemistim, bir sorun gormedim... yine de
asla bilemezsiniz...
----- Original Message -----
From: "Tonguç Yumruk" <tongucyumruk@interaktif.gen.tr>
To: <linux-programlama@liste.linux.org.tr>
Sent: Monday, August 11, 2003 11:26 AM
Subject: [linux-programlama] Re: makineler ve rasgele sayi uretimi
> Ancak sistem saatinden üretilen sayılar "uniq" olabilir, fakat belirli
> bir düzeni izlediği için kesinlikle rastgele sayılamazlar... Rastgele
> sayı üretmek istiyorsak aynı fonksiyonun ürettiği iki sayı arasında
> hiçbir bağ olmaması gerekir.
> Mon, Aug 11, 2003 at 11:32:38AM +0300 Tarihinde h2e@bilmuh.ege.edu.tr
Demişki :
> > random numara ureten fonksiyonlar sistem saatini kullanir.her zamanda
> > saat degiseceginden her zaman farkli sayilar elde etmis olursun!
> >
> > router will route you
> >
> > On Sun, 10 Aug 2003, Volkan YAZICI wrote:
> >
> >
>
> --
> Sevgi Saygı Linux
>
############################################################################
> Linus Torvalds:
> > This is the special easter release of linux, more mundanely called
1.3.84
> Winfried Truemper:
> > Umh, oh. What do you mean by "special easter release"?. Will it quit
> > working today and rise on easter?
>
############################################################################
> Tonguç Yumruk
>
> -- Attached file included as plaintext by Ecartis --
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.2 (GNU/Linux)
>
> iD8DBQE/N1Mz1xWu4MLSyoYRAnADAJ4mwDHhf4/koebAt5dny+sfO0cJ0QCcDvm5
> cnVwnzqTmBnwHwHQ0DHICgA=
> =s3Da
> -----END PGP SIGNATURE-----
>
>
>