oluşan bir sistem kurmadan önce, ta- sarladıkları sistemin boyutlarının el- verişli olup olmadığını saptamak için bir bilgisayarın “zar oyunu”'na baş- vurabilirler. En başarılı uygulamalar- dan biri ise şudur: Eğer bir bilgisayar şebekesine aktarılan veriler, daha ön- ceden bir rastlantısal sayılar üreticisi- nin belirlediği şifrelerle kodlanırsa, bilgisayar korsanlarının işi bitmiş de- mektir. Bunca işe yarayan rastlantılar ale- mine şöyle bir göz atmak bile büyü- leyici olabilir. O halde gelin bu alem- de bir gezintiye çıkalım. Okurlar bir yandan yazıları okurken bir yandan da rastlantısal sayıları yoklamak için kendi bilgisayarlarından yararlanabi- lirler. Yalnız uyaralım: Genellikle el kitaplarında RND fonksiyonuna iliş- kin yapılan açıklamalar yetersizdir. Hepsinin ortak özelliği, şu öğüdü ver- meleridir: “Kendinizi sürprizlere terk- edin.” Bu öğütle yapılabilecekler, ön- ceden kestirilemeyen ve şaşırtıcı bir es- tetiğe sahip olan grafik çizimlerle, -eğer dilbilgisi kurallarını biraz biliyor- sanız- çapraşıklığı insanı güldüren tu- haf cümlelerdir. Ama bütün bu uygu- lamalarda, birkaç denemeden sonra işin çekici bir yanı kalmaz. Oysa, rastlantısal sayılarla yapabi- lecekleriniz, bu sayılarla ilgili bilgile- rinizle doğru orantılıdır. Rastlantı il- le de düzensizlik demek değildir. Eğer rastlantı her zaman “içsel bir düzen- den yoksunluk” anlamına gelseydi, dünyada tek bir istatistikçi bile kal- mazdı. Aslında hepimizin bildiği şu kemik zar taneleri, rastlantının yasallıkla iliş- kisi için gayet güzel bir örnek oluştu- rurlar. İstatistik şunu göstermekte ve aynı zamanda kabul etmektedir: On- binlerce zar atışı gözlemlendiğinde, eğer işin içinde bir hile yoksa, zarın altı yüzündeki sayılar da, uygulama- da aynı sıklıkta düşeceklerdir. Ancak, uzun vadede geçerli olan bu yasanın tersine, tek bir zar atışı sözkonusu ol- duğunda, işe “bağımsızlık yasası”” ka- rışmaktadır. Şöyle ki, her tek zar atı- şına ondan önceki bütün atışların hiç- bir etkisi olmaz. Altı yüzden herhan- gi birinin düşme olasılığı, her tek atış için her zaman altıda bir olarak kal- maktadır. Ancak, bilgisayardaki rastlantısal sayılar üreticisi, bir zarı taklit etmeye çalışıyor da olsa, buradaki durum bi- raz farklıdır. Buradaki işlem, her bi- ri farklı sayılar taşıyan, sözgelimi 999,999 bilyalı bir lotto oyununa ben- zer. “Üretici” (generator) bir kere çekmiş olduğu bilyayı, bu ikinci kere çekme şansına sahip değildir. Ancak, bilyalar üzerindeki sâyıların 1,2,3,... şeklindeki tamsayılar değil, O ila 1 ara- sında yeralan ondalık sayılar olduğu- nu unutmayalım. Bu tür bir tercihin yararı açıktır: Böylelikle kullanıcı ken- di gereksinmelerine bağlı olarak, rast- lantısal sayıyı bir çarpan aracılığıyla dilediğince yükseltebilir. El kitaplarında da verilen buraya kadarki bilgilerle bile bir şeyler yapı- labilir. Rastlantısal sayılardan birin- cisinin X ekseni (yani yatay eksen) üzerindeki bir koordinatın değeri ol- duğunu düşünelim; ikincisi ise bir Y köordinatı değeri olsun. Bu durumda, her çift atış 1 x 1”lik bir düzlem üze- rinde bir noktaya rastlantısal bir ko- num kazandıracaktır. Bunu bir “atış” olarak düşündüğümüzde, üretici (ge- nerator) tıpkı dikdörtgen bir hedef tahtasına rastgele atış yapan bir tüfek gibi davranıyor olacaktır. Bu tür bir alıştırmanın pratik yara- rına gelincei: Uzun vade dikkate alın- dığında, diyelim ki bir milyon atıştan sonra, hedef tahtasının her tarafı ay- nı oranda isabet alacağından, örneğin 1 yarıçaplı dörtte bir daireye düşen isabetlerinin payının toplanması yeter- li olacak ve böylece de II sayısının de- ğeri zar atışı ile belirlenebilecektir; çünkü dörtte bir dairenin alanı I1/4 (1x1x3,14:4)'tür. “Zarların rastlantısı”” anlaşılıyor anlaşılmasına da, bu rastlantı bilgisa- yara nasıl girmektedir acaba? Eğer bu sorunun yanıtını henüz bilmiyorsanız, © halde sıkı durmalısınız: Tüm milyon atıştan ancak ilki gerçekten rastlantı- saldır. Gerisi ise, rastlantı gibi gözü- küyorsa da, göz boyacılığından baş- ka bir şey değildir. “Üretici”ye ilk atış yaptırıldığında, üretici belli bir yazmaçtan (Register) ve o anda rastlantısal olarak orada bu- lunan bir sayıyı çeker. Bu, içinde za- manın mikrosaniye sayısı bulunan bir yazmaç olabileceği gibi, bazı bilgisa- yarlarda görüldüğü üzere program ya- pabilen bir yazmaç da olabilir. Daha sonra bilgisayar gerçekten rastlantısal olan bu sayıyı başlangıç değeri olarak, programlanmış bir rutine yerleştirir, ikinci “rastlantı''nın sayısını hesaplar, hesapladığı sayıyı alır ve bunu yeni- den rutine yerleştirir; bu işlem, iste- nirse milyon defa yinelenebilir. Sayılar bir algoritma aracılığıyla üretildiklerinden, ardarda yapılan atışlar birbirlerinden bağımsız değil- lerdir. Bundan dolayı, zarlar ya da ru- let bilyaları gibi fiziksel üreticilerin tersine, bu sayılar “sözde rastlantısal sayılar”” olarak adlandırılmışlardır. Pek çok BASIC versiyonunda bil- gisayarın başlangıç değerini kaydet- mesi bir komutla sağlanabilmektedir. Bu durumda bilgisayar, bütünüyle ay- nı sayılardan oluşan ve sıra ve düzen bakımından da birincisine tam tamı- na denk düşen ikinci bir zar serisi oluşturabilmektedir. Buna, somut olarak, her başlangıçta AND-fonksi- yonunun aynı ve eksi bir parametre ile harekete geçirilmesi sayesinde ulaşıla- bilmektedir. Hangi “rastlantı”” sonuçlarının or- taya çıkacağının saptanabiliyor olması rastlantı kavramının anlamı düşünül- düğünde, ne denli hayal kırıklığına uğratıcı ise de, pratik bir değer taşı- maktadır. Yer darlığı nedeniyle mil- yonlarca sayının RAM-deposunda de- polanma imkânı bulunmamaktadır; bunların algoritmanın “zekâsında” saklanması çok daha kolay bir depo- lama yoludur. Atışlar bağımsız ve rastlantısal de- ğillerse, “üretici”'nin kullanılmasına ne gerek vardır? diye sorulabilir. Bu konuda sözü saat zamanına bırakmak her zaman için daha doğru olmaz mıy- dı? Bu elbette mümkündür. Bunun için RND-fonksiyonu harekete geçi- rildiğinde “Argument”'i 0 yapmak ye- terlidir. Fakat gene de, bu yöntem bir- çok durumda soruna bir çözüm getir- meyecektir. Bir düşünülecek olursa: Bir program şeridi sık sık akıp geçe- cek ve her defasında bir rastlantısal sa- yı buna eşlik edecektir. Ama bilgisa- yar, belki bir program şeridini işler- ken hep aynı zamana gereksinme duy-