Rastgele sayılar sırası. Yarışma için en iyi rastgele sayı üreteçleri

  • 03.09.2019

Organizasyon yapıyorsanız, muhtemelen rastgele bir kazanan seçmenin zorluğuyla karşı karşıya kalmışsınızdır. Kural olarak, bu gibi durumlarda popüler bir hizmet kullanılır. Random.org... VKontakte vb.'de düzenlenen yarışmaların kazananlarını duyururken ilgili ekran görüntülerini sonuçlarıyla birlikte görebilirsiniz. Bugün, özellikle Random'daki sayı üreteci tek özelliğinden uzak olduğu için, bu projeyi biraz daha ayrıntılı olarak ele almayı öneriyoruz.

Ana sayfada tüm fonksiyonların bir listesini bulacaksınız. Random'da çekiliş yapmak için kullanılabilecek iki tür hizmet vardır: ücretli ve ücretsiz. ÜCRETSİZ ve ÜCRETLİ hizmetler olarak belirlenmiştir. İlk durumda, sadece sonucu alırsınız. İkinci yöntemde ayrıca tüm sonuçları kaydetmek mümkündür + hizmet resmi bir örnekleme protokolü oluşturacaktır.

Pek çok okuyucu, bir bilgisayarın (makinenin) nasıl rastgele sayılar ürettiğini tartışabilir. Ve gerçekten de, çoğunluğu alırsak, o zaman şundan bahsediyoruz: sözde rastgele değerler yani değerler matematiksel fonksiyonlar kullanılarak yani tahmin edilebilir bir şekilde hesaplanır. Bu rastgele hizmetin püf noktası, bilgilerin atmosferik gürültüden okunmasıdır, bu da gerçekten rastgele sayılar elde etmenizi sağlar. Random.org, 1998 yılında Dublin Bilgisayar Bilimi ve İstatistik Okulu Doktoru Mads Haahr tarafından kuruldu. Artık proje piyangolarda, yarışmalarda, uygulamalarda, bilimde vb.

Hizmette ücretsiz rastgele

Çoğu durumda, ücretsiz seçenek yeterlidir. En önemli şey, bir katılımcı listesine sahip olmak. Aynı zamanda Random.org'da ödül çekilişi için 2 kampanyadan birini seçebilirsiniz:

  • rastgele sayı üreteci aracılığıyla;
  • listelerden seçerek;

Bir sayı üreteci formunu kullanma

Diyelim ki bilgisayarınızda yarışmaya katılan belirli bir kişi listeniz var. Ana sayfanın sağ tarafında, parametreleri ayarlamanız gereken bir widget bulacaksınız. Alanda minimum sayı (Min) bir (1), maksimumda - toplam katılımcı sayısını belirtin. Ardından, kazanan numarayı oluşturmak için "Oluştur" düğmesine tıklayın.

Bu arada, ana sayfanın hemen altında, Random.org'da birkaç rastgele sayı dizisi oluşturabileceğiniz bir "Tamsayı Oluşturucu" öğesi var. Biraz daha parametre var. Bir çekilişte birden fazla kazanan belirlemek istiyorsanız bu yararlı olabilir.

Liste oluşturucuyu kullanma

En üstteki menüde "Listeler ve daha fazlası"na gidin ve "List Randomizer" öğesini seçin (veya ana sayfada bulun). Tüm katılımcılarınızı girmeniz ve "Rastgele" düğmesini tıklamanız gereken yeni bir pencere açılacaktır. Program, belirtilen kişilerin rastgele yerleştirileceği nihai bir liste gösterecektir. Listedeki ilk kişi kazanır.

Listeyi sıralamaya ek olarak, Random.org hizmeti örnekleme zamanını + IP'nizi gösterecektir. Herkesin listeye dahil olduğunu ve kazananın seçiminin söz verilen zamanda gerçekleştiğini görebilmeleri için ekranın ekran görüntüsünü alabilir ve katılımcılara gösterebilirsiniz.

Bu iki Random.org oluşturucuya ek olarak, projede daha ilginç ücretsiz çipler var:

  • bozuk para atma simülatörü;
  • atılan zarın rastgele sonuçları;
  • piyangolar için sayı üreteci;
  • bir sayı dizisinin oluşturulması (tekrarlanmayanlar dahil);
  • rastgele karakter dizileri (ve parolalar) oluşturma;
  • rasgele sayıların farklı işlevlerini kullanma;
  • keyfi tarihler, coğrafi koordinatlar ve çok daha fazlasını almak.

Ücretli hizmet işlevleri

Büyük ödüller söz konusuysa veya buna katılan birçok kişi varsa, Random.org rasgele sayı üretecinin sonuçlarının kaydedilmesi için ücretli bir örnekle ilgileneceksiniz.

Fiyat katılımcı sayısına bağlıdır. Sayıları beş yüz kişiden azsa, 4,95 dolara mal olacak. 1000 katılımcı ise - 8,95 dolar. Ekran görüntüsünde daha fazla ayrıntı görebilirsiniz:

Sayfa widget'ları

Ayrıca, Rastgele hizmeti ek araçlar sunar. Bunları görmek için üst menüdeki "web araçları"na gidin. Aşağıdaki seçenekler burada mevcut olacaktır:

  1. Sayfalarınız için Widget'lar. Bu sayfada widget'lar oluşturabilirsiniz. Sistem, İnternet projenize yerleştireceğiniz özel bir kod üretir;
  2. Otomatik İstemciler için API. Bu sayfa, arabirimin JSON-RPC aracılığıyla Random.org'a nasıl bağlanacağını açıklar;
  3. HTTP API, kodda rastgele bir sayı görüntülemek için kullanılır;
  4. Yasaklanan Hostlar. Yasaklanan sunucuların listesi.

Çıktı

Bu nedenle, Random.org sayı üreteci, devam eden bir çekiliş veya yarışmada kazananı seçmek için harika bir seçenektir. Katılımcı sayısına bağlı olarak rastgele bir sayı üretecektir, ayrıca örnekleme yöntemlerinden birini seçebilirsiniz - sayısal bir değer veya bir liste. Ayrıca, hizmeti kullanırken, kazananın seçimini etkileyebilecek özel "aldatıcı" gıcırtıların varlığından kimsenin şüphesi olmayacak. Online versiyonuna ek olarak, farklı fonksiyonlara sahip Random generator uygulaması da bulunmaktadır. Genel olarak, bu kült ve gerçekten faydalı projelerden biridir.


İdeal olarak, rastgele sayıların dağılımının yoğunluk eğrisinin Şekil 1'de gösterilene benzeyeceğini unutmayın. 22.3. Yani, ideal durumda, her aralık aynı sayıda nokta içerir: n ben = n/k , nerede n- toplam puan sayısı, k- aralık sayısı, ben= 1,…, k .

Pirinç. 22.3. Düşen rastgele sayıların frekans diyagramı,
teorik olarak ideal bir jeneratör tarafından üretilen

Rastgele bir rastgele sayı üretmenin iki aşamadan oluştuğu unutulmamalıdır:

  • normalleştirilmiş bir rasgele sayı üretme (yani, 0'dan 1'e eşit olarak dağıtılmış);
  • normalleştirilmiş rasgele sayıları dönüştürme r ben rastgele sayılara x ben, gerekli kullanıcı (keyfi) dağıtım yasasına göre veya gerekli aralıkta dağıtılır.

Rastgele sayı üreteçleri aşağıdakilere ayrılır:

  • fiziksel;
  • tablo;
  • algoritmik.

Fiziksel RNG

Fiziksel RNG'lerin örnekleri şunlardır: bir madeni para (tura - 1, tura - 0); zar; sayılarla sektörlere ayrılmış oklu bir tambur; gürültülü bir termal cihaz olarak kullanılan donanım gürültü üreteci (HS), örneğin bir transistör (Şekil 22.4-22.5).

Pirinç. 22.4. Rastgele sayılar üretmek için donanım yönteminin şeması
Pirinç. 22.5. Donanım yöntemiyle rastgele sayılar elde etme şeması
"Bir bozuk para kullanarak rastgele sayılar oluşturma" görevi

0'dan 1'e eşit olarak dağıtılmış rastgele 3 basamaklı bir sayı oluşturmak için bir bozuk para kullanın. Kesinlik üç ondalık basamaktır.

Sorunu çözmenin ilk yolu
Bir madeni parayı 9 kez çevirin ve madeni para tura gelirse "0", tura ise "1" yazın. Diyelim ki deney sonucunda 100110100 rastgele bir dizi elde ettik.

0'dan 1'e bir aralık çizin Sayıları soldan sağa sırayla okuyun, aralığı ikiye bölün ve her seferinde bir sonraki aralığın parçalarından birini seçin (0 düşerse, sonra sola, 1 düşerse, sonra sağa) ). Böylece aralıktaki herhangi bir noktaya istediğiniz kadar doğru bir şekilde ulaşabilirsiniz.

Yani, 1 : aralık yarıya indirilir - ve, - sağ yarı seçilir, aralık daraltılır:. Sonraki sayı, 0 : aralık yarıya indirilir - ve, - sol yarı seçilir, aralık daraltılır:. Sonraki sayı, 0 : aralık yarıya indirilir - ve, - sol yarı seçilir, aralık daraltılır:. Sonraki sayı, 1 : aralık yarıya indirilir - ve, - sağ yarı seçilir, aralık daraltılır:.

Sorunun doğruluğu koşuluyla çözüm bulundu: aralıktan herhangi bir sayı, örneğin 0.625.

Prensip olarak, eğer katı bir şekilde yaklaşırsanız, o zaman aralıkların bölünmesi, bulunan aralığın sol ve sağ sınırları üçüncü ondalık basamağa kadar ÇIKARILANA kadar devam etmelidir. Yani, doğruluk açısından, üretilen sayı, bulunduğu aralıktaki herhangi bir sayıdan artık ayırt edilemeyecektir.

Sorunu çözmenin ikinci yolu
Elde edilen 100110100 ikili dizisini üçlülere ayıralım: 100, 110, 100. Bu ikili sayıları ondalık sayıya dönüştürdükten sonra elde ederiz: 4, 6, 4. Önde "0" yerine koyarsak: 0.464 elde ederiz. Bu yöntem yalnızca 0,000 ile 0,777 arasındaki sayıları alabilir (çünkü üç ikili basamaktan çıkarılabilecek maksimum değer 111 2 = 7 8'dir) - yani aslında bu sayılar sekizli sayı sisteminde temsil edilir. Çeviri için sekizli sayılar ondalık temsili uygulayacağız:
0.464 8 = 4 · 8 –1 + 6 · 8 –2 + 4 · 8 –3 = 0.6015625 10 = 0.602 10.
Yani, gerekli sayı şuna eşittir: 0.602.

Tablo RNG

Tablosal RNG'ler, rasgele sayıların kaynağı olarak, doğrulanmış ilişkisiz, yani birbirinden bağımsız sayıları içeren özel olarak derlenmiş tablolar kullanır. Tablo 22.1, böyle bir tablonun küçük bir parçasını gösterir. Tabloyu soldan sağa yukarıdan aşağıya doğru hareket ettirerek, 0'dan 1'e gerekli sayıda ondalık basamakla eşit olarak dağıtılmış rastgele sayılar elde edebilirsiniz (örneğimizde, her sayı için üç ondalık basamak kullanıyoruz). Tablodaki sayılar birbirine bağlı olmadığından, tablo farklı şekillerde, örneğin yukarıdan aşağıya veya sağdan sola doğru hareket ettirilebilir veya örneğin çift konumlu sayıları seçebilirsiniz.

Tablo 22.1.
Rastgele sayılar. eşit
0'dan 1'e rastgele sayılar dağıtıldı
Rastgele sayılar Eşit dağıtılmış
0'dan 1'e rastgele sayılar
9 2 9 2 0 4 2 6 0.929
9 5 7 3 4 9 0 3 0.204
5 9 1 6 6 5 7 6 0.269
… …

Bu yöntemin avantajı, tablo doğrulanmış ilişkisiz sayılar içerdiğinden, gerçekten rastgele sayılar vermesidir. Yöntemin dezavantajları: çok sayıda rakamı saklamak çok fazla bellek gerektirir; bu tür tabloların oluşturulmasında ve kontrol edilmesinde büyük zorluklar, bir tabloyu kullanırken tekrarlar artık sayısal dizinin rastgeleliğini ve dolayısıyla sonucun güvenilirliğini garanti etmemektedir.

500 kesinlikle rastgele doğrulanmış sayı içeren bir tablo var (I. G. Venetsky, V. I. Venetskaya "Ekonomik analizde temel matematiksel ve istatistiksel kavramlar ve formüller" kitabından alınmıştır).

algoritmik RNG

Bu RNG'ler kullanılarak oluşturulan sayılar her zaman sözde rastgeledir (veya yarı rastgele), yani sonraki oluşturulan her sayı bir öncekine bağlıdır:

r ben + 1 = F(r ben) .

Bu tür sayılardan oluşan diziler döngüler oluşturur, yani zorunlu olarak sonsuz sayıda tekrar eden bir döngü vardır. Tekrar eden döngülere periyot denir.

RNG verilerinin avantajı hızdır; jeneratörler pratik olarak bellek kaynakları gerektirmezler, kompakttırlar. Dezavantajları: Sayılar tamamen rastgele olarak adlandırılamaz, çünkü aralarında bir bağımlılık olduğu kadar, yarı rasgele sayılar dizisindeki dönemlerin varlığı da vardır.

Bir RNG elde etmek için birkaç algoritmik yöntem düşünün:

  • orta kareler yöntemi;
  • ara ürünler yöntemi;
  • karıştırma yöntemi;
  • lineer uyumlu yöntem.

Ortalama kareler yöntemi

dört basamaklı bir sayı var r 0. Bu sayının karesi alınır ve r 1. İleride r 1 orta (dört orta basamak) - yeni bir rasgele sayı - alınır ve yazılır r 0. Ardından prosedür tekrarlanır (bkz. şekil 22.6). Aslında, rastgele bir sayı olarak almanın gerekli olmadığını unutmayın. gij, a 0.gij- sola atanmış bir sıfır ve ondalık nokta ile. Bu gerçek, Şekil 1'deki gibi yansıtılmaktadır. 22.6 ve sonraki benzer şekillerde.

Pirinç. 22.6. Ortalama kareler şeması

Yöntemin dezavantajları: 1) eğer bir yinelemede sayı r 0 sıfıra eşit olur, ardından jeneratör dejenere olur, bu nedenle başlangıç ​​değerinin doğru seçimi önemlidir. r 0; 2) jeneratör diziyi baştan sona tekrar edecektir. m n adımlar (en iyi ihtimalle), nerede n- rakam kapasitesi r 0 , m- sayı sisteminin temeli.

Örneğin, Şekil. 22.6: eğer sayı r 0 ikili sistemde temsil edilecek, daha sonra sözde rasgele sayılar dizisi 2 4 = 16 adımda tekrarlanacaktır. İlk sayı iyi seçilmezse dizinin tekrarının daha erken gerçekleşebileceğini unutmayın.

Yukarıda açıklanan yöntem, John von Neumann tarafından önerildi ve 1946'ya kadar uzanıyor. Bu yöntem güvenilmez olduğu için hızla terk edildi.

Orta ürünler yöntemi

Sayı r 0 ile çarpılır r 1, elde edilen sonuçtan r 2 ortasını çıkarın r 2 * (bu başka bir rastgele sayıdır) ve ile çarpılır r 1. Sonraki tüm rasgele sayılar bu şema kullanılarak hesaplanır (bkz. Şekil 22.7).

Pirinç. 22.7. Orta ürünler yöntemi

karıştırma yöntemi

Karıştırma yöntemi, bir hücrenin içeriğini döngüsel olarak sola ve sağa kaydırmak için işlemleri kullanır. Yöntemin fikri aşağıdaki gibidir. Hücrenin tohumu saklamasına izin ver r 0. Hücrenin içeriğini döngüsel olarak hücre uzunluğunun 1/4'ü kadar sola kaydırarak yeni bir sayı elde ederiz. r 0 *. Aynı şekilde, bir hücrenin içeriğini döngüsel olarak kaydırmak r 0 hücre uzunluğunun 1 / 4'ü kadar sağa, ikinci sayıyı alırız r 0 **. sayıların toplamı r 0 * ve r 0 ** yeni bir rastgele sayı verir r 1. Daha öte r 1 girilir r 0 ve tüm işlem dizisi tekrarlanır (bkz. Şekil 22.8).


Pirinç. 22.8. Karıştırma Yöntemi Şeması

Lütfen toplamdan elde edilen sayının r 0 * ve r 0 **, hücreye tam olarak sığmayabilir r 1. Bu durumda, alınan numaradan fazladan rakamlar atılmalıdır. Bunu Şekil için açıklayalım. 22.8, burada tüm hücreler sekiz ikili basamakla temsil edilir. İzin vermek r 0 * = 10010001 2 = 145 10 , r 0 ** = 10100001 2 = 161 10 , sonra r 0 * + r 0 ** = 100110010 2 = 306 10 ... Gördüğünüz gibi, 306 sayısı (ikili sayı sisteminde) 9 rakamı kaplar ve hücre r 1 Beğeni r 0) maksimum 8 bit tutabilir. Bu nedenle, değeri girmeden önce r 1, 306 sayısından en soldaki bit olan bir "ekstra" çıkarmak gerekir, bunun sonucunda r 1 artık 306 değil, 00110010 2 = 50 10 olacak. Ayrıca Pascal gibi dillerde, bir hücre taştığında ekstra bitlerin "kesilmesi", belirtilen değişken türüne göre otomatik olarak yapılır.

Doğrusal uyumlu yöntem

Doğrusal uyumlu yöntemi, rastgele sayıları simüle etmek için en basit ve en yaygın kullanılan prosedürlerden biridir. Bu yöntem modu kullanır ( x, y), bu, ikinciye bölünen ilk bağımsız değişkenin kalanını döndürür. Sonraki her rastgele sayı, aşağıdaki formül kullanılarak bir önceki rastgele sayıya göre hesaplanır:

r ben+ 1 = mod ( k · r ben + B, m) .

Bu formül kullanılarak elde edilen rastgele sayılar dizisine denir. lineer uyumlu dizi... Birçok yazar, doğrusal uyumlu bir dizi olarak adlandırır. B = 0 çarpımsal uyumlu yöntem, ve B ≠ 0 — karışık uyumlu yöntem.

Kaliteli bir jeneratör için uygun katsayıları seçmeniz gerekir. sayı olması zorunludur m oldukça büyüktü, çünkü dönem daha fazla olamaz m elementler. Öte yandan, bu yöntemde kullanılan bölme işlemi oldukça yavaş bir işlemdir, bu nedenle ikili bir bilgisayarın seçmesi mantıklı olacaktır. m = 2 n, çünkü bu durumda bölmenin kalanını bulmak bilgisayarın içinde ikili mantıksal bir "VE" işlemine indirgenir. En büyük asal sayının seçimi de yaygındır m 2'den az n: özel literatürde, bu durumda elde edilen rastgele sayının en az anlamlı bitlerinin olduğu kanıtlanmıştır. r ben+ 1, bir bütün olarak rasgele sayı dizisinin tamamı üzerinde olumlu bir etkiye sahip olan, eskileri kadar rasgele davranır. Bir örnek biridir Mersenne numaraları 2 31 - 1'e eşittir ve böylece m= 2 31 - 1.

Doğrusal uyumlu diziler için gereksinimlerden biri, periyot uzunluğunun mümkün olduğu kadar büyük olmasıdır. Dönemin uzunluğu değerlere bağlıdır m , k ve B... Aşağıda sunduğumuz teorem, belirli değerler için bir maksimum uzunluk periyoduna ulaşmanın mümkün olup olmadığını belirlememizi sağlar. m , k ve B .

teorem... Sayılarla tanımlanan doğrusal uyumlu dizi m , k , B ve r 0, bir uzunluk periyoduna sahiptir m ancak ve ancak:

  • sayılar B ve m karşılıklı basit;
  • k- 1 çoklu P her basit için P hangisi bölen m ;
  • k- eğer 4'ün 1 katı m 4'ün katı.

Son olarak, rasgele sayılar üretmek için lineer uyumlu yöntemi kullanmanın birkaç örneğini verelim.

Örnek 1'deki verilerden üretilen bir dizi sözde rasgele sayının her seferinde tekrarlanacağı bulundu. m/ 4 numara. Sayı Q hesaplamalara başlamadan önce keyfi olarak ayarlanır, ancak serinin büyük için rastgele olduğu izlenimi verdiği akılda tutulmalıdır. k(bunun anlamı Q). Sonuç, aşağıdaki durumlarda biraz iyileştirilebilir: B tuhaf ve k= 1 + 4 Q - bu durumda, satır her defasında tekrarlanacaktır. m sayılar. Uzun bir aramadan sonra k araştırmacılar 69069 ve 71365 değerlerine karar verdiler.

Örnek 2'deki verileri kullanan bir rasgele sayı üreteci, 7 milyon periyotlu rasgele tekrarlanmayan sayılar üretecektir.

Sözde rasgele sayılar üretmek için çarpma yöntemi, 1949'da D. H. Lehmer tarafından önerildi.

Jeneratörün kalitesini kontrol etme

Tüm sistemin kalitesi ve sonuçların doğruluğu RNG'nin kalitesine bağlıdır. Bu nedenle, RNG tarafından üretilen rastgele dizi bir dizi kriteri karşılamalıdır.

Yapılan kontroller iki tiptir:

  • dağılımın tekdüzeliğini kontrol eder;
  • istatistiksel bağımsızlığı kontrol eder.

Dağıtım tekdüzelik kontrolleri

1) RNG, tek tip bir rastgele yasanın karakteristiği olan aşağıdaki istatistiksel parametre değerlerine yakın üretmelidir:

2) Frekans testi

Frekans testi, aralığa kaç sayı düştüğünü bulmanızı sağlar. (m r – σ r ; m r + σ r) , yani (0,5 - 0,2887; 0,5 + 0,2887) veya nihayetinde (0,2113; 0,7887). 0.7887 - 0.2113 = 0.5774 olduğundan, iyi bir RNG'de bırakılan tüm rastgele sayıların yaklaşık %57.7'sinin bu aralığa düşmesi gerektiği sonucuna varırız (bkz. Şekil 22.9).

Pirinç. 22.9. İdeal bir RNG'nin frekans diyagramı
bir frekans testi için kontrol edilmesi durumunda

Ayrıca, aralıktaki (0; 0,5) sayı sayısının, aralıktaki (0,5; 1) sayı sayısına yaklaşık olarak eşit olması gerektiği unutulmamalıdır.

3) Ki-kare testi

Ki-kare testi (χ 2 testi) en ünlü istatistiksel testlerden biridir; diğer kriterlerle birlikte kullanılan ana yöntemdir. Ki-kare testi, 1900 yılında Karl Pearson tarafından önerildi. Dikkat çekici çalışması, modern matematiksel istatistiklerin temeli olarak kabul edilir.

Bizim durumumuz için ki-kare testi, gerçek RNG, RNG standardına yakındır, yani düzgün dağılım şartını karşılayıp karşılamadığı.

Frekans diyagramı referans RNG, Şekil 2'de gösterilmektedir. 22.10. Referans RNG'nin dağılım yasası tek tip olduğundan, (teorik) olasılık P ben sayıları vurmak ben th aralığı (tüm bu aralıklar k) eşittir P ben = 1/k ... Ve böylece, her birinde k aralıklar düşecek düzüzerinde P ben · n sayılar ( nÜretilen sayıların toplam sayısıdır).

Pirinç. 22.10. Referans RNG'nin frekans diyagramı

Gerçek bir RNG, dağıtılmış (ve mutlaka eşit olması gerekmez!) k aralıklar ve her aralık şunları içerecektir n ben sayılar (toplamda n 1 + n 2 + ... + n k = n ). Test edilen RNG'nin ne kadar iyi olduğunu ve referansa ne kadar yakın olduğunu nasıl belirleriz? Alınan sayı sayısı arasındaki farkların karelerini dikkate almak oldukça mantıklıdır. n ben ve "referans" P ben · n ... Onları ekleyelim ve sonuç olarak şunu elde ederiz:

χ 2 exp. = ( n 1 - P 1 · n) 2 + (n 2 - P 2 n) 2 + ... + ( n k – P k · n) 2 .

Bu formülden, her bir terimdeki fark ne kadar küçükse (ve dolayısıyla χ 2 exp. değeri ne kadar küçükse), gerçek RNG tarafından üretilen rasgele sayıların dağılım yasasının o kadar güçlü olduğu sonucu çıkar.

Önceki ifadede, terimlerin her birine aynı ağırlık (1'e eşit) atanmıştır, bu aslında gerçeğe karşılık gelmeyebilir; bu nedenle ki-kare istatistiği için her birini normalize etmek gerekir. ben-th terimi, onu bölerek P ben · n :

Son olarak, ortaya çıkan ifadeyi daha kompakt bir şekilde yazıp sadeleştiriyoruz:

için ki-kare testinin değerini elde ettik. deneysel veri.

Tablo 22.2 verildi teorik ki-kare değerleri (χ 2 teorisi), nerede ν = n- 1, serbestlik derecesi sayısıdır, P RNG'nin tek tip dağıtım gereksinimlerini ne kadar karşılaması gerektiğini gösteren kullanıcı tanımlı güven düzeyi mi, yoksa P — bu, χ 2 exp deneysel değerinin olasılığıdır. tablolaştırılmış (teorik) χ 2 teorisinden daha az olacaktır. ya da ona eşit.

Tablo 22.2.
χ 2 dağılımının bazı yüzde noktaları
p = %1 p = %5 p = %25 p = %50 p = %75 p = %95 p = %99
ν = 1 0.00016 0.00393 0.1015 0.4549 1.323 3.841 6.635
ν = 2 0.02010 0.1026 0.5754 1.386 2.773 5.991 9.210
ν = 3 0.1148 0.3518 1.213 2.366 4.108 7.815 11.34
ν = 4 0.2971 0.7107 1.923 3.357 5.385 9.488 13.28
ν = 5 0.5543 1.1455 2.675 4.351 6.626 11.07 15.09
ν = 6 0.8721 1.635 3.455 5.348 7.841 12.59 16.81
ν = 7 1.239 2.167 4.255 6.346 9.037 14.07 18.48
ν = 8 1.646 2.733 5.071 7.344 10.22 15.51 20.09
ν = 9 2.088 3.325 5.899 8.343 11.39 16.92 21.67
ν = 10 2.558 3.940 6.737 9.342 12.55 18.31 23.21
ν = 11 3.053 4.575 7.584 10.34 13.70 19.68 24.72
ν = 12 3.571 5.226 8.438 11.34 14.85 21.03 26.22
ν = 15 5.229 7.261 11.04 14.34 18.25 25.00 30.58
ν = 20 8.260 10.85 15.45 19.34 23.83 31.41 37.57
ν = 30 14.95 18.49 24.48 29.34 34.80 43.77 50.89
ν = 50 29.71 34.76 42.94 49.33 56.33 67.50 76.15
ν > 30 ν + kare (2 ν ) · x P+ 2/3 x 2 P- 2/3 + Ö(1 / kare ( ν ))
x P = –2.33 –1.64 –0.674 0.00 0.674 1.64 2.33

Kabul edilebilir olarak kabul edildi P %10'dan %90'a.

Eğer χ 2 exp. χ 2 teorisinden çok daha fazlası. (yani P- harika), sonra jeneratör tatmin etmiyor tekdüze dağılım gereksinimi, çünkü gözlenen değerler n ben teorikten çok uzaklaşmak P ben · n ve rastgele kabul edilemez. Başka bir deyişle, güven aralığı o kadar geniş ayarlanır ki sayılar üzerindeki kısıtlamalar çok gevşer, sayılar üzerindeki gereksinimler zayıflar. Bu durumda, çok büyük bir mutlak hata gözlemlenecektir.

D. Knuth bile "The Art of Programming" adlı kitabında χ 2 deneyime sahip olduğunu kaydetti. küçük de genel olarak iyi değildir, ancak ilk bakışta tekdüzelik açısından harika görünse de. Gerçekten de, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, ... sayılarından oluşan bir dizi alın - bakış açısından idealdirler. tekdüzelik ve χ 2 exp. pratikte sıfır olacaktır, ancak bunları rastgele olarak tanımanız pek olası değildir.

Eğer χ 2 exp. χ 2 teorisinden çok daha az. (yani P- küçük), sonra jeneratör tatmin etmiyor gözlemlenen değerler olduğundan, rastgele bir düzgün dağılımın gerekliliği n ben teorik olarak çok yakın P ben · n ve rastgele kabul edilemez.

Ama eğer χ 2 exp. χ 2 teoreminin iki değeri arasında belirli bir aralıkta yer alır. hangi karşılık gelir, örneğin, P= %25 ve P= %50, o zaman sensör tarafından üretilen rastgele sayıların değerlerinin tamamen rastgele olduğunu varsayabiliriz.

Ayrıca, tüm değerlerin akılda tutulması gerekir. P ben · n yeterince büyük, örneğin 5'ten fazla olmalıdır (deneysel olarak bulunur). Ancak o zaman (yeterince büyük bir istatistiksel örnekle) deney koşulları tatmin edici olarak kabul edilebilir.

Bu nedenle, doğrulama prosedürü aşağıdaki gibidir.

İstatistiksel bağımsızlık testleri

1) Bir dizideki bir basamağın oluşma sıklığını kontrol edin

Bir örneğe bakalım. Rastgele sayı 0.2463389991, 2463389991 rakamlarından oluşur ve 0.5467766618 sayısı 5467766618 rakamlarından oluşur. Rakam dizilerini birleştirdiğimizde: 24633899915467766618.

Açıktır ki teorik olasılık P ben serpintiler ben-inci basamak (0'dan 9'a kadar) 0,1'dir.

2) Aynı sayı dizilerinin görünümünü kontrol etme

ile belirtelim n L ardışık uzunluk basamaklarının dizi sayısı L... Her şeyin kontrol edilmesi gerekiyor L 1'den m, nerede m Kullanıcı tarafından belirlenen bir sayıdır: bir dizide meydana gelen maksimum aynı basamak sayısı.

"24633899915467766618" örneğinde 2 dizi uzunluk 2 (33 ve 77) bulunmuştur, yani n 2 = 2 ve 2 seri 3 uzun (999 ve 666), yani n 3 = 2 .

uzunluğundaki bir serinin olma olasılığı L eşittir: P L= 9 10 - L (teorik). Yani, bir karakter uzunluğunda bir dizi olasılığı: P 1 = 0.9 (teorik). İki karakter uzunluğunda bir dizi olasılığı: P 2 = 0,09 (teorik). Üç karakter uzunluğunda bir çizginin olasılığı: P 3 = 0,009 (teorik).

Örneğin, bir karakter uzunluğundaki bir dizinin olasılığı P L= 0.9, çünkü 10 karakterden sadece biri ile karşılaşılabilir ve toplamda 9 karakter vardır (sıfır sayılmaz). Ve iki özdeş "XX" sembolünün bir satırda ortaya çıkma olasılığı 0.1 · 0.1 · 9'dur, yani "X" sembolünün ilk konumda görünme olasılığı 0.1'dir, aynı sembolün 0.1 olasılığı ile çarpılır. ikinci "X" konumunda görünür ve bu kombinasyonların sayısı 9 ile çarpılır.

Serilerin görünme sıklığı, değerler kullanılarak daha önce analiz edilen "ki-kare" formülüne göre hesaplanır. P L .

Not: Jeneratör birçok kez kontrol edilebilir, ancak kontroller tamamlanmamıştır ve jeneratörün rastgele sayılar ürettiğini garanti etmez. Örneğin, 12345678912345 ... dizisini yayınlayan bir üreteç, kontroller sırasında ideal olarak kabul edilecektir ve bu açıkça tamamen doğru değildir.

Sonuç olarak, Donald E. Knuth'un "Programlama Sanatı" (cilt 2) kitabının üçüncü bölümünün tamamen rastgele sayıların incelenmesine ayrıldığını not ediyoruz. Rastgele sayılar üretmek için çeşitli yöntemleri, rasgelelik için istatistiksel kriterleri ve düzgün dağılmış rasgele sayıların diğer rasgele değişken türlerine dönüştürülmesini araştırır. Bu materyalin sunumuna iki yüzden fazla sayfa ayrılmıştır.

Sunulan çevrimiçi rasgele sayı üreteci, JavaScript'te yerleşik bir tek tip dağılıma sahip programlanmış bir sözde rasgele sayı üreteci temelinde çalışır. Tamsayılar oluşturulur. Varsayılan olarak, 100 ... 999 aralığında 10 rastgele sayı görüntülenir, sayılar boşluklarla ayrılır.

Rastgele sayı üretecinin temel ayarları:

  • Sayı miktarı
  • Sayı aralığı
  • ayırıcı tipi
  • Tekrarları silme işlevini açma / kapama (sayıların kopyaları)

Toplam sayı resmi olarak 1000 ile sınırlıdır, maksimum sayı 1 milyardır. Ayırıcı seçenekleri: boşluk, virgül, noktalı virgül.

Artık belirli bir aralıktaki rastgele sayıların bir dizisini İnternette ücretsiz olarak nereden ve nasıl alacağınızı tam olarak biliyorsunuz.

Rastgele Sayı Üretici Uygulamaları

Rastgele bir sayı üreteci (JS'de tek tip dağılıma sahip RNG), piyango, yarışma ve ödül çekilişlerinin kazananlarını belirlemek için Instagram, Facebook, Vkontakte, Odnoklassniki sosyal ağlarındaki SMM uzmanları ve grup ve topluluk sahipleri için faydalı olacaktır.

Rastgele sayı üreteci, belirli sayıda kazananla rastgele sayıda katılımcı arasından ödüller çekmenize olanak tanır. Yarışmalar, gönderiler ve yorumlar olmadan yapılabilir - katılımcı sayısını ve rasgele sayılar üretme aralığını kendiniz belirlersiniz. Bu sitede bir dizi rastgele sayıyı çevrimiçi ve ücretsiz olarak alabilirsiniz ve akıllı telefonunuza herhangi bir uygulama veya bilgisayarınıza herhangi bir program yüklemeniz gerekmez.

Ayrıca, bir madeni para veya zar atmayı simüle etmek için çevrimiçi bir rastgele sayı üreteci kullanılabilir. Ancak, bu durumlar için ayrı özel hizmetlerimiz bulunmaktadır.

Bu oluşturucu ile herhangi bir aralıkta rastgele sayılar oluşturabilirsiniz. Bu oluşturucu ayrıca bir listeden rastgele bir sayı seçmenize veya tanımlamanıza olanak tanır. Veya 2'den 70'e kadar elemanlı bir rastgele sayı dizisi oluşturun. Bu çevrimiçi araç, yalnızca bir (1), iki (2) veya üç basamaklı (3) rasgele sayı oluşturmanıza değil, aynı zamanda beş ve yedi de oluşturmanıza olanak tanır. Kurulumu kolay. Herkes ustalaşabilir. Ayrıca çevrimiçi veya çevrimdışı piyangolar veya yarışmalar için rastgele sayılar seçebilirsiniz. Ve uygun olacak. Tüm tabloları veya rastgele sayı satırlarını kolayca oluşturabilirsiniz. Bölünmüş bir saniyede, ekranınızda rastgele bir sayı veya sırasını (setini) alacaksınız. Sayılarınızın bir sırasını alırsanız, algoritma rastgele veya rastgele olanları seçecektir, herhangi biri düşebilir. Bu aracın yardımıyla kendiniz çekiliş yapabilirsiniz. Örneğin, sonuç olarak aynı sayı aralığını ve sayısını seçerek, rastgele bir dizi (kombinasyon) oluşturabilirsiniz. Ayrıca rastgele harf kombinasyonları ve kelimeler de seçebilirsiniz. Sitemizdeki diğer her şey gibi bu araç da tamamen ücretsizdir (istisna yoktur).

Aralıktaki sayıları girin

İtibaren
Önce
üret

Rastgele bir sayı oluşturmak için aralığı değiştirme

1..10 1..100 1..1000 1..10000 çekiliş için 5 / 36 için piyango 6 / 45 için piyango 6 / 49 için piyango 6 / 59

Rastgele sayıların sayısı (1)

Tekrarları ortadan kaldırın

Listeden rastgele değerler seçin (virgül veya boşluklarla ayırın, virgül bulunursa bölme onlar tarafından yapılır, aksi takdirde boşluklar)

Bugün yarışma için en iyi rastgele sayı üreteclerine bir göz atacağız. Sosyal ağlardaki grupların yöneticileri, Instagram ve blog yazarları genellikle belirli bir tarihte aboneleri ve ziyaretçileri için çeşitli ödüllerin çekildiği yarışmalar ve çeşitli piyangolar düzenler. Yarışma gereklilikleri genellikle, katılımcının belirli eylemleri gerçekleştirmesi, ayrıca kanala abone olması ve sayfada materyali yeniden yayınlaması gereken bir dizi özdeş koşula sahiptir. Bundan sonra, blog yazarı veya yönetici, koşulları yerine getirenler arasından rastgele bir kazanan seçmelidir.

Rastgele bir kazanan seçmek için bu fırsatı sağlayan özel hizmet siteleri vardır. Bunu, ücretli yazılımlara veya programcıların hizmetlerine başvurmadan sosyal ağların ve blogların sayfalarında yapabilirsiniz. Herhangi bir özel bilim bilgisi olmadan kazananı rastgele belirlemek mümkündür. Bu rasgele sayı üreteçlerinin çoğu ücretsizdir ve basit bir arayüze sahiptir ve deneyimsiz kullanıcılar tarafından bile kullanılabilir.

Birçok rastgele sayı hizmeti aynı prensipte çalışır:

  • G - derecelendirme.
  • V, kazananın puanını etkileyen faktörün ağırlığıdır.
  • S rastgele bir sayıdır.
  • Dahil edilen faktör ağırlığı ile formül şu şekilde olacaktır - S + beğeni sayısı * V.
  • Jeneratörün çalışması, gönderiler eklerken biraz değişir - S + beğeniler * V + gönderiler * V.

Jeneratörün hesaplanması prensibi diğer faktörlerin varlığında değişiyor, her şeyi hesaba katmak mümkün olmayacak.

Fanpage Karma, daha basit rastgele kazanan üreticilerden biridir

Araçlarını ücretsiz olarak sağlayan http://www.fanpagekarma.com/ kullanıcıları için çok uygun ve erişilebilir bir site. Küçük bir dezavantaj var - site İngilizce'dir, ancak aşağıda açıklanacak olan ipuçlarının yardımıyla bununla başa çıkmak kolaydır.

Sadece sarı alandaki sayfaya bir ok ile bir bağlantı sağlamanız yeterlidir ve hizmet, yarışmanın kazananını belirlemek için tüm çalışmaları otomatik olarak yapacaktır. Bu harika, ancak üye adlarını büyük listeler halinde toplamanız ve bazılarının gerektirdiği gibi bunları hizmete sağlamanız gerekmez.


Funpage Karma rastgele sayı üreteci

Resimden de görebileceğiniz gibi, çıktıda dört kategorili ayrıntılı bir liste alıyoruz: beğeniler ve yorumlar, sadece beğeniler, tek başına yorumlar ve en çok beğeni alan yorumlar. Her şeyden önce, yarışma için rastgele sayı üreteci sosyal ağ Facebook için harika, onunla herhangi bir ek araç olmadan çalışıyor. Hizmet ayrıca raporlar ve raporlarla ücretsiz olarak çalışmak için araçlar sağlar.

RandomPicker en ciddi rastgele sayı üreticisidir

RandomPicker hizmeti ücretlidir, ancak türünün en iyi aracı olarak adlandırılacak tüm niteliklere sahiptir. Şenlikli bir yarışmanın (piyango) oynanacağı geniş bir izleyici kitleniz varsa ve tamamlandıktan sonra kazanan için bir aday seçme süreci hakkında bir rapor göndermeniz gerekecekse, bu hizmet tam size göre, özellikle de tamamen Rusça konuşulduğundan. Merhemdeki bir sinek, hizmetin ödenmesidir. Hizmetleri, ücretsiz limiti aşmak için 38 dolara mal oldu.


Rastgele Sayı Üreticisi Rastgele Seçici

RandomPicker oluşturucu özel bir örnekleme protokolü oluşturur ve kazananın belirlenmesinden sonraki tüm sonuçlar hizmet sunucusunda kalır. Bu sizin için ek avantajlar sağlar, böylece abonelerinize rastgele sayı üretecinin sonuçlarını göstererek fuar çekilişi hakkındaki sözlerinizi onaylayabilirsiniz. Bu hizmeti kullanarak, katılımcıların listeye gerçekten dahil olduklarını ve çekilişe ilişkin diğer bilgileri (katılımcı sayısı, kazanan vb.) görebilecekleri bir örnekleme protokolü oluşturabilirsiniz.

RandomPicker ile nasıl çalışılır

  • Hizmeti kullanmak için https://www.randompicker.com/default.aspx?Culture=en-RU bağlantısını takip edin ve kaydolun.
  • Başlamak için, çekilişe katılacak katılımcıların bir listesini hazırlamanız gerekir. Liste, hizmete farklı şekillerde sunulabilir: Excel tablosu, CSV ve el yazısı liste.
  • Küçük bir yarışmanız veya başka bir etkinliğiniz varsa ve katılımcı listesi büyük değilse, RandomPicker 100'e kadar katılımcıyı ücretsiz olarak seçecektir. Daha fazla katılımcı varsa, hizmete 38 dolar ödenir. 300 bin maksimum katılımcı sayısıdır.
  • Hizmet sadece adil çekilişler için uygundur, kurcalama yapılamaz. Kazanan sadece bir kez seçilir ve hiçbir şey değiştirilemez.

Random.org, ilk çevrimiçi sayı üreticilerinden biridir.

Servis 1997 yılında kuruldu. Çeşitli görevler için basit bir rastgele sayı üreteci olmasına rağmen, genellikle yarışmalar için bir kazanan tanımlayıcı olarak kullanılır. Bu hizmeti kullanmak için önceden bir katılımcı listesi hazırlamak gerekir. Hizmet, bir ücret karşılığında ve ücretsiz olarak hizmet vermektedir. Ücretli sürümde, kazanan seçme sonuçlarını kaydetme özelliği mevcuttur.


Random.org hizmeti ana sayfası

Random.org'da kazananı seçebilmek için hizmetlerin fiyatlarını bilmeniz gerekir. Listeniz 500 kişiye kadar içeriyorsa, size yaklaşık 5 dolara mal olacak. 1 bin katılımcının maliyeti yaklaşık 9 dolar, tüm hizmet fiyatları https://www.random.org/draws/pricing/ adresinde mevcut.

Random.org hizmeti nasıl kullanılır?


Woobox Bir kazanan seçin - Facebook için özel hizmet

Bu, sosyal ağ Facebook'un eşantiyonlarında rastgele bir kazanan seçmek için başka bir araçtır. Ne yazık ki, jeneratör yalnızca bu ağ için kullanılabilir. Kazananı belirlemek için - Facebook hesabınıza giriş yapın.


Site woobox.com
  • Şimdi bu siteye giriş yapın - https://woobox.com/pickawinner. Ayrıca en sosyal olanı kullanarak kayıt olabilirsiniz. Facebook ağında logolu butona tıklayarak.
  • Daha sonra sitenin üst kısmındaki "Diğer İşletmeler" açılır listesinden menüyü seçin ve tekrar listeden istediğiniz sayfayı seçin.
  • Facebook sayfanızdaki gönderilerinizin bir listesini açacak olan üst paneldeki "Gönderiler" düğmesini seçin, yarışma içeren bir gönderi seçin.
  • Ve sağ tarafta yeşil bir "Kazanan Seç" düğmesi var - üzerine tıklayın.
  • 2 öğe seçeneği olan bir sayfaya ulaşırsınız - yorumlar ve beğeniler. Kazananı seçmek istediğiniz kriterlerden birini seçin ve tekrar "Kazanan Seç" butonuna tıklayın. Sistem kazananı otomatik olarak rastgele belirleyecektir. Birdenbire kazanan yanlış seçildiyse veya seçim sonucunu iptal etmek için başka nedenler varsa, iptal etmek için sağ taraftaki "Seçici Kaldır" düğmesine basın.

Sizinle çevrimiçi yarışmalar için en iyi rastgele sayı üreteçlerini inceledik. Bazılarını ücretsiz olarak kullanabilirsiniz, ancak hangisini seçeceğiniz size kalmış.