Bilgi Keşfi
/ Knowledge Discovery >> Bilgi Keşfi >> teknoloji >> bilgisayar >> bilgisayar donanımı >>

Tamamen mantıklı bir bilgisayar rasgele bir sayı üretmek nasıl?

How bir bilgisayar gibi tamamen mantıksal makine rastgele sayı üretebilirsiniz? Bir bilgisayar gibi tamamen mantıksal makine rasgele bir sayı üretmek nasıl
?


vardır Bilgisayarlar rastgele sayı üretebilirsiniz iki yolu vardır:

Bir tamamen rastgele doğal olayı izler ve bilgisayar sonuçlarını gönderir cihazın çeşit oluşturabilirsiniz. Örneğin, bir Geiger sayacı önünde radyoaktif madde bir parça koyabilirsiniz ve bir bilgisayara Geiger sayacı bağlayın. Radyoaktif bozunma rastgele olduğundan, Geiger sayacı gerçekten rastgele sayılar yaratacak. Birçok kişi kendi makinelerine bağlı Geiger sayaçları var, çünkü bu yaklaşım, oldukça nadirdir. Bir yalancı rasgele bir sayı oluşturur, bir formül oluşturabilir. Formülü tasarlarken bu formül ne olduğunu bilmiyordum herkese rastgele olmazdı sayılar bir dizi üretmek için, fikirdir. İyi bir formülün özellikleri şunlardır:

  • Hayır tekrarı: dizisi etrafında döngüsü değil ve tekerrür. İyi sayısal dağılımı: formül 0 ile 9 arasında rastgele sayılar üreten ise, ürettiği vb sıfır, olanları, birer ikişer, sayısı, uzun bir süre boyunca kabaca eşit olmalıdır. Öngörülebilirlik eksikliği: Eğer (başlangıç ​​değeri) formülü ve tohum bilmiyorsanız sonraki sayının ne olacağını tahmin etmek hiçbir yolu yoktur

    İşte basit bir rastgele sayı formülünün bir örnek. Kitap " C Programlama Dili, " Kernighan ve Ritchie:

     int rand () {random_seed = random_seed * 1103515245 12345; Dönüş (unsigned int) (random_seed /65536)% 32.768; } 

    Bu formül, başlangıçta bazı sayıya ayarlanmış random_seed adında bir değişkenin, varlığını varsayar. Random_seed değişken 1,103,515,245 ile çarpılır ve sonra 12,345 ürüne ilave alır; random_seed sonra bu yeni değeri ile değiştirilir. Bu aslında oldukça iyi bir sözde rasgele sayı üreteci olduğunu. İyi bir dağılıma sahiptir ve non-yinelenen olduğunu. Eğer 0 ile 9 arasında rastgele sayılar üretmek için kullanırsanız, burada tohum 10 ise ürettiği ilk 20 değerler şunlardır:

     44607423505664567674 

    Eğer 0 ile 9 arasında 10.000 değerler üretmesi varsa, Burada dağılımı var:

     0-10151 - 10242-9885 - - 9964-10483 10016-9967 - 10068 - 9659-961 

    Herhangi bir rasgele sayı formülü dizisi başlatmak için tohum değerine bağlıdır. Aynı tohum başlarsanız, formül değerleri aynı sıra alırsınız. Böylece tek bir bilgisayar üzerinde 10 tohum yukarıda gösterilen rand () işlevini vermek ve ürettiği sayıların akışında bakarsanız, bu 10 bir tohum ile çalışır herh

    Page [1] [2]