Sözde Rastgele Sayı Üretimi
Bilgisayarlarda kullanılan rastgele sayı üreticileri genellikle gerçekten rastgele değillerdir. Bunun yerine, deterministik (yani, belirli bir girdi verildiğinde her zaman aynı çıktıyı üreten) algoritmalar kullanırlar ve ürettikleri sayılar "rastgele" gibi görünür. Bu tür rastgele sayı üreticilerine "pseudo-rastgele sayı üreteci" (PRNG) denir.
Python'da random modülü, çeşitli türlerde pseudo-rastgele sayılar üretmek için bir dizi işlev sağlar. Bu işlevlerin çoğu, Mersenne Twister algoritması adı verilen bir PRNG kullanır.
İşte random modülünün bazı işlevlerine birkaç örnek:
random.random(): 0.0 ile 1.0 arasında rastgele bir float sayı üretir.
random.uniform(a, b): a ve b arasında rastgele bir float sayı üretir.
random.randint(a, b): a ve b arasında rastgele bir tam sayı üretir (her iki uç da dahil).
random.choice(seq): Bir dizi veya liste olan seq'den rastgele bir öğe seçer.
random.shuffle(seq): Bir dizi veya listeyi rastgele karıştırır.
Örneğin:
import random print(random.random()) print(random.uniform(1, 10)) print(random.randint(1, 10)) my_list = [1, 2, 3, 4, 5] print(random.choice(my_list)) random.shuffle(my_list) print(my_list)
PRNG'ler, genellikle bilgisayar simülasyonlarında, istatistiksel örnekleme yöntemlerinde, şifreleme algoritmalarında ve daha birçok yerde kullanılır. Ancak, çıktılarının tahmin edilebilir olduğu için (yani, aynı başlangıç durumundan başladığınızda her zaman aynı "rastgele" sayıları üretirler), genellikle güvenlik açısından kritik uygulamalar için uygun değillerdir. Bu tür durumlar için, donanım tabanlı rastgelelik kaynakları veya kriptografik olarak güvenli pseudo-rastgele sayı üreteçleri kullanılır.
0 Comments
Recommended Comments
There are no comments to display.