Rastgele sayı düzenleyicisi. Fonksiyonlar ve Veri Analizinde Excel Rastgele Sayı Üreteci

Çevrimiçi sayı üreteci, belirli bir bit derinliğinde ve en geniş aralıkta gerekli sayıda sayıyı elde etmenizi sağlayan kullanışlı bir araçtır. Rastgele sayı üretecimizin birçok kullanımı vardır! Örneğin, VKontakte'de bir yarışma düzenleyebilir ve bir grup bisikletçinin arasında bir oyuncak ayı için orada bir cevap için oynayabilirsiniz :)) Bunun yardımıyla, kazanan numarayı belirlemeye karar verirseniz de çok gurur duyacağız. herhangi bir piyango veya kumarhanede hangi sayıya bahis oynayacağınıza karar verin. Birisinin şanslı numarasını çevrimiçi olarak bizimle bulacağını umuyoruz!

Rastgele sayı aralığı:

Miktar:

Tekrarlamayı ortadan kaldırmak mı?

Sayı oluştur

Lütfen geliştirmemize yardımcı olun: Arkadaşlarınıza jeneratörden bahsedin!

Rastgele | 1 tıklamayla çevrimiçi rastgele sayı

Sayılar bizi doğumumuzdan itibaren çevreler ve yaşamda önemli bir rol oynar. Birçok insan için işin kendisi sayılarla bağlantılıdır; bazıları şansa güvenir, piyango biletlerini sayılarla doldururken, diğerleri onlara mistik anlamlar bile yükler. Öyle ya da böyle, bazen gibi bir programı kullanmadan yapamayız. rastgele numara üreticisi.

Örneğin grubunuzun aboneleri arasında bir ödül çekilişi düzenlemeniz gerekiyor. Çevrimiçi rastgele sayı oluşturucumuz, kazananları hızlı ve dürüst bir şekilde seçmenize yardımcı olacaktır. Örneğin, gerekli sayıda rastgele sayıyı (kazanan sayısına göre) ve maksimum aralığı (eğer kendilerine sayılar atanmışsa katılımcı sayısına göre) ayarlamanız yeterlidir. Bu durumda dolandırıcılık tamamen hariç tutulmuştur.

Bu program aynı zamanda loto için rastgele sayı üreteci olarak da hizmet verebilir. Örneğin, bir bilet aldınız ve sayıları seçerken tamamen şansa güvenmek istiyorsunuz. O zaman sayı rastgeleleştiricimiz piyango biletinizi doldurmanıza yardımcı olacaktır.

Rastgele bir sayı nasıl oluşturulur: talimatlar

Rastgele sayı programıÇok basit çalışıyor. Bilgisayarınıza indirmenize bile gerek yok; her şey bu sayfanın açık olduğu tarayıcı penceresinde yapılır. Rastgele sayılar, belirtilen sayı sayısına ve bunların aralığına (0 ila 999999999) uygun olarak oluşturulur. Çevrimiçi bir sayı oluşturmak için şunları yapmalısınız:

  1. Sonucun alınmasını istediğiniz aralığı seçin. Belki 10'a ya da diyelim 10.000'e kadar sayıları kesmek istiyorsunuz;
  2. Tekrarları ortadan kaldırın; bu öğeyi seçerek sayı rastgeleleştirici size yalnızca belirli bir aralıktaki benzersiz kombinasyonları sunar;
  3. 1'den 99999'a kadar sayıları seçin;
  4. “Sayı oluştur” düğmesine tıklayın.

Sonuç olarak kaç sayı elde etmek isterseniz isteyin, asal sayı üreteci sonucun tamamını tek seferde üretecektir ve bu sayfada fare veya touchpad kullanarak sayıların bulunduğu alanda gezinerek görebilirsiniz.

Artık hazır numaraları ihtiyacınız olan şekilde kullanabilirsiniz. Numara alanından sonucu kopyalayarak bir grupta yayınlayabilir veya postayla gönderebilirsiniz. Ve sonucun herhangi bir şüphe yaratmaması için, sayı rastgeleleştiricinin parametrelerinin ve program sonuçlarının açıkça görülebileceği bu sayfanın ekran görüntüsünü alın. Alandaki sayıları değiştirmek mümkün olmadığından manipülasyon olasılığı ortadan kaldırılmıştır. Umarız web sitemiz ve rastgele sayı oluşturucumuz size yardımcı olmuştur.

Bilgisayarda rastgelelik nedir? Rastgele sayılar nasıl üretilir? Bu yazımızda bu sorulara basit yanıtlar vermeye çalıştık.

Yazılımda ve genel olarak teknolojide tekrarlanabilir rastgeleliğe ihtiyaç vardır: Rastgele görünen sayılar ve resimler aslında belirli bir algoritma tarafından oluşturulur. Buna sözde rastgelelik denir ve sözde rastgele sayılar oluşturmanın basit yollarına bakacağız. Makalenin sonunda, bu görünüşte rastgele sayıların üretilmesi için basit bir teorem formüle edeceğiz.

Tam olarak neyin kaza teşkil ettiğini belirlemek oldukça zor olabilir. Belirli bir dizinin ne kadar rastgele olduğuna dair size kesin bir değer verebilecek testler (Kolmogorov karmaşıklığı gibi) vardır. Ama uğraşmayacağız, sadece birbiriyle ilgisiz görünecek bir sayı dizisi oluşturmaya çalışacağız.

Çoğunlukla ihtiyaç duyulan şey yalnızca bir sayı değil, sürekli olarak üretilen birkaç rastgele sayıdır. Bu nedenle tohum değeri verildiğinde başka rastgele sayılar oluşturmamız gerekir. Bu başlangıç ​​değerine denir tohum ve onu nasıl elde edeceğimizi daha sonra göreceğiz. Şimdilik diğer rastgele değerleri oluşturmaya odaklanalım.

Bir Tohumdan Rastgele Sayılar Üretmek

Bir yaklaşım, tohuma çılgın bir matematik formülü uygulamak, sonra onu çıktı numarası tahmin edilemez görünecek kadar bükmek ve ardından bunu bir sonraki yinelemenin tohumu olarak almak olabilir. Tek soru bu distorsiyon fonksiyonunun nasıl görünmesi gerektiğidir.

Bu fikri deneyelim ve bizi nereye götüreceğini görelim.

Distorsiyon fonksiyonu bir değer alıp başka bir değer döndürecektir. Buna R diyelim.

R(Giriş) -> Çıkış

Eğer tohumumuzun değeri 1 ise, o zaman R 1, 2, 3, 4'ten oluşan bir seri yaratacaktır... Bu hiç de rastgele görünmüyor ama oraya ulaşacağız. Şimdi R'nin 1 yerine bir sabit eklemesine izin verin.

R(x) = x + c

Eğer c, örneğin 7'ye eşitse, o zaman 1, 8, 15, 22, ... serisini elde ederiz. Hala aynı değil. Açıkçası, eksik olduğumuz şey, sayıların sadece artması değil, aynı zamanda belli bir aralığa yayılması gerektiğidir. Başa dönmek için dizimize ihtiyacımız var - bir sayı çemberi!

Sayı çemberi

Saat yüzüne bakalım: Sıramız 1'den başlıyor ve 12'ye kadar daire çizerek gidiyor. Ama bilgisayarla çalıştığımız için 12 yerine 0 olsun.

Şimdi 1'den başlayarak tekrar 7'yi ekleyeceğiz. İlerleme! 12’den sonra hangi sayıyla başlarsak başlayalım serimizin tekrarlanmaya başladığını görüyoruz.

Burada çok önemli bir özellik elde ediyoruz: Eğer döngümüz n elemandan oluşuyorsa, o zaman bunlar tekrarlanmaya başlamadan önce alabileceğimiz maksimum eleman sayısı n'dir.

Şimdi R fonksiyonunu mantığımıza uyacak şekilde yeniden yazalım. Modül operatörünü veya kalan operatörünü kullanarak bir döngünün uzunluğunu sınırlayabilirsiniz.

R(x) = (x + c) %m

R(x) = (x + c) %m

Bu noktada bazı sayıların c'ye uymadığını fark edebilirsiniz. Eğer c = 4 ve 1'den başlıyorsak dizimiz 1, 5, 9, 1, 5, 9, 1, 5, 9, ... olur ki bu bizim için işe yaramaz çünkü bu dizi kesinlikle rastgele değil. Döngü uzunluğu ve atlama uzunluğu için seçtiğimiz sayıların özel bir şekilde ilişkilendirilmesi gerektiği açıkça ortaya çıkıyor.

Birkaç farklı değer denerseniz, bir özellik görebilirsiniz: m ve c eş asal olmalıdır.

Şu ana kadar toplama yaparak atılımlar yaptık, peki ya çarpmayı kullanırsak? Haydi çarpalım X bir sabite A.

R(x) = (ax + c) %m

R(x) = (ax + c) %m

Tam bir döngünün oluşması için a'nın uyması gereken özellikler biraz daha spesifiktir. Geçerli bir döngü oluşturmak için:

  1. (a - 1) tüm m asal çarpanlarına bölünebilir olmalıdır
  2. m 4'e bölünebiliyorsa (a - 1) 4'e bölünmelidir

Bu özellikler, m ve c'nin göreceli olarak asal olması gerektiği kuralıyla birlikte Hull-Dobell teoremini oluşturur. Kanıtına bakmayacağız ama farklı sabitler için bir sürü farklı değer alırsanız aynı sonuca varabilirsiniz.

Tohum seçimi

Şimdi işin eğlenceli kısmından bahsetmenin zamanı geldi: İlk tohumun seçilmesi. Bunu sabit hale getirebiliriz. Bu, rastgele sayılara ihtiyaç duyduğunuz ancak programı her çalıştırdığınızda bunların aynı olmasını istediğiniz durumlarda yararlı olabilir. Örneğin her oyun için aynı haritayı oluşturmak.

Diğer bir yol ise sistem saati gibi program her başlatıldığında yeni bir kaynaktan tohum almaktır. Bu, zar atma programında olduğu gibi toplam rastgele bir sayıya ihtiyacınız olduğunda kullanışlıdır.

Son sonuç

Bir fonksiyonu sonucuna birkaç kez uyguladığımızda bir yineleme ilişkisi elde ederiz. Formülümüzü özyinelemeyi kullanarak yazalım.


İdeal olarak rastgele sayı dağılım yoğunluk eğrisinin Şekil 2'de gösterildiği gibi görüneceğini unutmayın. 22.3. Yani ideal olarak her aralık aynı sayıda noktayı içerir: N Ben = N/k , Nerede N toplam puan sayısı, k aralık sayısı, Ben= 1, , k .

Pirinç. 22.3. Rastgele sayıların frekans diyagramı,
ideal bir jeneratör tarafından teorik olarak üretilir

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

  • normalleştirilmiş bir rastgele sayının üretilmesi (yani 0'dan 1'e eşit şekilde dağıtılması);
  • normalleştirilmiş rastgele sayı dönüşümü R Ben rastgele sayılara X Ben Kullanıcının gerektirdiği (keyfi) dağıtım yasasına göre veya gereken aralıkta dağıtılanlar.

Sayı elde etme yöntemine göre rastgele sayı üreteçleri ikiye ayrılır:

  • fiziksel;
  • tablo halinde;
  • algoritmik.

Fiziksel RNG

Fiziksel bir RNG örneği şunlar olabilir: bir madeni para (“tura” 1, “yazı” 0); zar; sayılarla sektörlere bölünmüş oklu bir tambur; Örneğin bir transistör gibi gürültülü bir termal cihaz kullanan donanım gürültü üreteci (HS).

Pirinç. 22.4. Rastgele sayılar üretmek için bir donanım yönteminin şeması
Pirinç. 22.5. Donanım yöntemini kullanarak rastgele sayılar elde etme şeması
Görev “Para kullanarak rastgele sayılar üretme”

Bir madeni para kullanarak 0 ile 1 arasında eşit olarak dağıtılan üç basamaklı rastgele bir sayı oluşturun. Doğruluk üç ondalık basamak.

Sorunu çözmenin ilk yolu
Bir parayı 9 kez atıyoruz, para tura gelirse “0”, tura gelirse “1” yazıyoruz. Diyelim ki deney sonucunda 100110100 rastgele dizisini aldık.

0'dan 1'e kadar 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 alırsanız soldakini, 0 alırsanız soldakini) a 1, sonra sağdaki). Böylece aralıktaki herhangi bir noktaya istediğiniz kadar doğru bir şekilde ulaşabilirsiniz.

Bu yüzden, 1 : aralık ikiye bölünür ve sağ yarı seçilir, aralık daraltılır: . Sonraki numara 0 : aralık ikiye bölünür ve sol yarı seçilir, aralık daraltılır: . Sonraki numara 0 : aralık ikiye bölünür ve sol yarı seçilir, aralık daraltılır: . Sonraki numara 1 : aralık ikiye bölünür ve sağ yarı seçilir, aralık daraltılır: .

Sorunun doğruluk koşuluna göre bir çözüm bulunmuştur: Aralıktan herhangi bir sayıdır, örneğin 0,625.

Prensip olarak, eğer katı bir yaklaşım izlersek, aralıkların bölünmesi, bulunan aralığın sol ve sağ sınırları üçüncü ondalık basamak doğruluğu ile ÇAĞDAŞ olana kadar devam ettirilmelidir. Yani doğruluk açısından bakıldığında, oluşturulan sayı artık bulunduğu aralıktaki hiçbir sayıdan ayırt edilemeyecektir.

Sorunu çözmenin ikinci yolu
Ortaya çıkan 100110100 ikili dizisini üçlülere bölelim: 100, 110, 100. Bu ikili sayıları ondalık sayılara dönüştürdükten sonra şunu elde ederiz: 4, 6, 4. Önüne "0" koyarsak: 0,464 elde ederiz. Bu yöntem yalnızca 0,000'den 0,777'ye kadar sayılar üretebilir (çünkü üç ikili basamaktan "sıkılabilecek" maksimum sayı 111 2 = 7 8'dir), yani bu sayılar aslında sekizlik sayı sisteminde temsil edilir. Çeviri için sekizli içindeki sayılar ondalık temsilini gerçekleştirelim:
0,464 8 = 4 8 1 + 6 8 2 + 4 8 3 = 0,6015625 10 = 0,602 10.
Yani gerekli sayı: 0,602.

Tablo RNG'si

Tablolu RNG'ler, rastgele sayıların kaynağı olarak, ilişkisiz olduğu doğrulanmış, yani hiçbir şekilde birbirine bağımlı olmayan sayılar içeren özel olarak derlenmiş tablolar kullanır. Masada Şekil 22.1 böyle bir tablonun küçük bir bölümünü göstermektedir. Tabloyu soldan sağa, yukarıdan aşağıya doğru hareket ettirerek, gerekli sayıda ondalık basamakla 0'dan 1'e 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 yukarıdan aşağıya veya sağdan sola gibi farklı şekillerde hareket edebilir veya örneğin eşit konumdaki sayıları seçebilirsiniz.

Tablo 22.1.
Rastgele numaralar. Eşit olarak
0'dan 1'e kadar dağıtılan rastgele sayılar
Rastgele numaralar Aynı oranda paylaştırılmış
0'dan 1'e kadar 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ı, tablonun doğrulanmış ilişkisiz sayılar içermesi nedeniyle gerçekten rastgele sayılar üretmesidir. 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 vardır; bir tablo kullanılırken yapılan tekrarlar artık sayısal dizinin rastgeleliğini ve dolayısıyla sonucun güvenilirliğini garanti etmez.

Kesinlikle rastgele doğrulanmış 500 sayı içeren bir tablo vardır (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 tarafından oluşturulan sayılar her zaman sözde rastgeledir (veya yarı rastgeledir), yani üretilen her sonraki 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 sonsuz sayıda tekrarlanan bir döngünün olması gerekir. Tekrarlanan döngülere periyot denir.

Bu RNG'lerin avantajı hızlarıdır; jeneratörler neredeyse hiç bellek kaynağı gerektirmez ve kompakttır. Dezavantajları: Sayılar tam olarak rastgele olarak adlandırılamaz, çünkü aralarında bir bağımlılık olduğu gibi yarı rastgele sayılar dizisindeki dönemlerin varlığı da vardır.

RNG elde etmek için birkaç algoritmik yöntemi ele alalım:

  • medyan kareler yöntemi;
  • orta ürünler yöntemi;
  • karıştırma yöntemi;
  • doğrusal uyumlu yöntem.

Orta kare yöntemi

Dört basamaklı bir sayı var R 0. Bu sayının karesi alınır ve girilir. R 1. Sonraki R 1 ortadaki (ortadaki dört rakamlı) yeni rastgele sayıyı alır ve bunu içine yazar R 0. Daha sonra prosedür tekrarlanır (bkz. Şekil 22.6). Aslında rastgele bir sayı olarak almamanız gerektiğini unutmayın. ghij, A 0.ghij sola bir sıfır ve bir ondalık nokta eklenerek. Bu gerçek Şekil 2'de olduğu gibi yansıtılmaktadır. 22.6 ve sonraki benzer şekillerde.

Pirinç. 22.6. Ortalama kareler yönteminin şeması

Yöntemin dezavantajları: 1) eğer bir yinelemede sayı R 0 sıfıra eşit olur, ardından jeneratör dejenere olur, dolayısıyla başlangıç ​​değerinin doğru seçimi önemlidir R 0; 2) jeneratör diziyi tekrarlayacaktır M N adımlar (en iyi ihtimalle), nerede N sayı haneli R 0 , M sayı sisteminin temeli

Örneğin Şekil 2'de. 22.6: eğer sayı Rİkili sayı sisteminde 0 temsil edilecek, daha sonra sözde rastgele sayılar dizisi 2 4 = 16 adımda tekrarlanacaktır. Başlangıç ​​numarasının kötü seçilmesi durumunda dizinin tekrarının daha erken gerçekleşebileceğini unutmayın.

Yukarıda açıklanan yöntem John von Neumann tarafından önerilmiştir ve tarihi 1946 yılına kadar uzanmaktadır. Bu yöntemin güvenilmez olduğu ortaya çıkınca hızla terk edildi.

Orta ürün yöntemi

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

Pirinç. 22.7. Medyan çarpım yönteminin şeması

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 şu şekildedir. Hücrenin ilk sayıyı saklamasına izin ver R 0. Hücre 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 hücrenin içeriğini döngüye sokmak R 0 hücre uzunluğunun 1/4'ü kadar sağa doğru ikinci sayıyı elde ederiz R 0**. Sayıların toplamı R 0* ve R 0** yeni bir rastgele sayı verir R 1. Daha öte R 1 girildi R 0 ve tüm işlem sırası tekrarlanır (bkz. Şekil 22.8).


Pirinç. 22.8. Karıştırma yöntemi diyagramı

Lütfen toplamdan elde edilen sayının R 0* ve R 0 ** , hücreye tam olarak sığmayabilir R 1. Bu durumda, ortaya çıkan sayıdan fazla rakamların atılması gerekir. Bunu Şekil 2'de açıklayalım. 22.8, burada tüm hücreler sekiz ikili rakamla temsil edilir. İzin vermek R 0 * = 10010001 2 = 145 10 , R 0 ** = 10100001 2 = 161 10 , Daha sonra R 0 * + R 0 ** = 100110010 2 = 306 10 . Gördüğünüz gibi 306 sayısı 9 rakamı kaplar (ikili sayı sisteminde) ve hücre R 1 (aynısı R 0) maksimum 8 bit içerebilir. Bu nedenle değeri girmeden önce R 1'de, 306 sayısından en soldaki bir "ekstra" biti kaldırmak gerekir; R 1 artık 306'ya değil, 00110010 2 = 50 10'a gidecek. Ayrıca Pascal gibi dillerde, bir hücre taşması durumunda ekstra bitlerin "kırpılmasının", değişkenin belirtilen türüne göre otomatik olarak gerçekleştirildiğini unutmayın.

Doğrusal uyumlu yöntem

Doğrusal eş yöntem şu anda rastgele sayıları simüle eden en basit ve en yaygın kullanılan prosedürlerden biridir. Bu yöntem modu kullanır ( X, sen) , ilk argüman ikinciye bölündüğünde kalanı döndürür. Sonraki her rastgele sayı, aşağıdaki formül kullanılarak ö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 doğrusal uyumlu dizi. Birçok yazar aşağıdaki durumlarda doğrusal uyumlu dizi adını verir: B = 0 çarpımsal uyumlu yöntem, ve ne zaman B ≠ 0 — karışık uyumlu yöntem.

Kaliteli bir jeneratör için uygun katsayıların seçilmesi gerekir. Sayının olması gerekli M oldukça büyüktü, çünkü dönem daha fazlasına sahip olamaz M elementler. Öte yandan, bu yöntemde kullanılan bölme oldukça yavaş bir işlem olduğundan, ikili bilgisayar için mantıksal seçim şöyle olacaktır: M = 2 Nçünkü bu durumda bölmenin geri kalanını bulmak bilgisayar içinde ikili mantıksal "VE" işlemine indirgenir. En büyük asal sayıyı seçmek de yaygındır M, 2'den az N: özel literatürde, bu durumda ortaya çıkan rastgele sayının düşük sıralı rakamlarının olduğu kanıtlanmıştır. R Ben+ 1, eskileri kadar rastgele davranır ve bu, bir bütün olarak rastgele sayılar dizisinin tamamı üzerinde olumlu bir etkiye sahiptir. Örnek olarak aşağıdakilerden biri Mersenne numaraları, 2 31 1'e eşittir ve dolayısıyla, M= 2 31 1 .

Doğrusal uyumlu dizilerin gereksinimlerinden biri, periyot uzunluğunun mümkün olduğu kadar uzun 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 maksimum uzunlukta bir süreye 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 periyoda sahiptir M ancak ve ancak:

  • sayılar B Ve M görece basit;
  • k 1 kez P her asal sayı için P, bu bir bölendir M ;
  • k 1 4'ün katı ise M 4'ün katı.

Son olarak, rastgele sayılar üretmek için doğrusal eş yöntemin kullanımına ilişkin birkaç örnekle bitirelim.

Örnek 1'deki verilere dayanarak oluşturulan bir dizi sözde rastgele sayının her seferinde tekrarlanacağı belirlendi. M/4 sayı. Sayı Q hesaplamalara başlamadan önce keyfi olarak belirlenir ancak serinin genel olarak rastgele olduğu izlenimini verdiği unutulmamalıdır. k(ve bu nedenle Q). Sonuç şu şekilde iyileştirilebilir: B tuhaf ve k= 1 + 4 · Q bu durumda satır her seferinde tekrarlanacaktır M sayılar. Uzun bir aramanın ardından k araştırmacılar 69069 ve 71365 değerleri üzerinde anlaştılar.

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

Sahte rastgele sayılar üretmek için çarpımsal yöntem, 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 oluşturulan rastgele dizinin bir dizi kriteri karşılaması gerekir.

Yapılan kontroller iki türlüdür:

  • dağıtımın tekdüzeliğini kontrol eder;
  • İstatistiksel bağımsızlık testleri.

Dağıtımın tekdüzeliğini kontrol eder

1) RNG, tekdüze bir rastgele yasanın karakteristik istatistiksel parametrelerinin aşağıdaki değerlerine yakın üretmelidir:

2) Frekans testi

Frekans testi, bir aralıkta kaç sayının bulunduğunu bulmanızı sağlar (M R – σ R ; M R + σ R) yani (0,5 0,2887; 0,5 + 0,2887) veya sonuçta (0,2113; 0,7887) olur. 0,7887 0,2113 = 0,5774 olduğundan, iyi bir RNG'de çekilen tüm rastgele sayıların yaklaşık %57,7'sinin bu aralığa düşmesi gerektiği sonucuna vardık (bkz. Şekil 22.9).

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

Ayrıca (0; 0,5) aralığına düşen sayıların sayısının (0,5; 1) aralığına düşen sayıların sayısına yaklaşık olarak eşit olması gerektiğini de dikkate almak gerekir.

3) Ki-kare testi

Ki-kare testi (χ 2 testi) en iyi bilinen 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 istatistiğin temeli olarak kabul ediliyor.

Bizim durumumuz için, ki-kare kriterini kullanarak test yapmak, gerçek RNG, RNG kıyaslamasına yakındır, yani tekdüze dağıtım gerekliliğini karşılayıp karşılamadığı.

Frekans diyagramı referans RNG Şekil 2’de gösterilmektedir. 22.10. Referans RNG'nin dağıtım yasası tekdüze olduğundan, (teorik) olasılık P Ben sayıları içine almak Ben inci aralık (tüm bu aralıklar k) eşittir P Ben = 1/k . Ve böylece her birinde k aralıklarla vuracak düzİle P Ben · N sayılar ( N oluşturulan toplam sayı sayısı).

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

Gerçek bir RNG, ülke genelinde dağıtılan (ve mutlaka eşit olması gerekmeyen!) sayılar üretecektir. 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 referans olana ne kadar yakın olduğunu nasıl belirleyebiliriz? Ortaya çıkan sayı sayısı arasındaki kare farklarını dikkate almak oldukça mantıklıdır. N Ben ve "referans" P Ben · N . Bunları toplayalım ve sonuç:

χ 2 deneyim = ( N 1 P 1 · N) 2 + (N 2 P 2 · N) 2 + + ( N k – P k · N) 2 .

Bu formülden, terimlerin her birindeki fark ne kadar küçük olursa (ve dolayısıyla χ2 exp.'nin değeri ne kadar küçük olursa), gerçek bir RNG tarafından üretilen rastgele sayıların dağılım yasasının tekdüze olma eğiliminde olduğu sonucu çıkar.

Önceki ifadede terimlerin her birine aynı ağırlık (1'e eşit) atanmıştır; bu aslında doğru olmayabilir; bu nedenle ki-kare istatistikleri için her birinin normalleştirilmesi gerekir Ben inci terime bölerek P Ben · N :

Son olarak ortaya çıkan ifadeyi daha kompakt bir şekilde yazalım ve basitleştirelim:

Ki-kare testi değerini elde ettik deneysel veri.

Masada 22.2 verilmiştir teorik ki-kare değerleri (χ 2 teorik), burada ν = N 1 serbestlik derecesinin sayısıdır, P bu, RNG'nin tekdüze bir dağıtımın gerekliliklerini ne kadar karşılaması gerektiğini gösteren, kullanıcı tarafından belirlenen bir güven düzeyidir veya P — χ 2 exp'nin deneysel değerinin olasılığıdır. tablodaki (teorik) χ 2 teorik değerinden daha az olacaktır. veya 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 ν + sqrt(2 ν ) · X P+ 2/3 · X 2 P 2/3 + Ö(1/sqrt( ν ))
X P = 2.33 1.64 0,674 0.00 0.674 1.64 2.33

Kabul edilebilir sayılır P %10'dan %90'a.

Eğer χ 2 exp. χ 2 teorisinden çok daha fazlası. (yani P büyük), sonra jeneratör tatmin etmiyor gözlemlenen değerler nedeniyle tekdüze dağılım gereksinimi N Ben Teorik olmaktan çok uzaklara gitmek P Ben · N ve rastgele kabul edilemez. Yani o kadar büyük bir güven aralığı oluşturuluyor ki rakamlara ilişkin kısıtlamalar çok gevşek oluyor, rakamlara yönelik gereksinimler zayıflıyor. Bu durumda çok büyük bir mutlak hata gözlenecektir.

D. Knuth bile “Programlama Sanatı” adlı kitabında χ 2 exp. küçük olanlar için genel olarak da iyi değil, ancak bu ilk bakışta tekdüzelik açısından harika görünüyor. Aslında, 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ı dizisini alın, bunlar tekdüzelik açısından idealdir ve χ 2 deneyim neredeyse sıfır olacaktır, ancak bunları rastgele olarak tanımanız pek mümkün değildir.

Eğer χ 2 exp. χ 2 teorisinden çok daha az. (yani P küçük), ardından jeneratör tatmin etmiyor gözlemlenen değerler nedeniyle rastgele tekdüze bir dağılım gereksinimi N Ben teoriye çok yakın P Ben · N ve rastgele kabul edilemez.

Ama eğer χ 2 exp. χ 2 teorisinin iki değeri arasında belirli bir aralıkta yer alır. örneğin şuna karşılık gelir: P= %25 ve P=%50 ise sensörün ürettiği rastgele sayı değerlerinin tamamen rastgele olduğunu varsayabiliriz.

Ayrıca tüm değerlerin dikkate alınması gerekir. P Ben · N yeterince büyük olmalıdır, örneğin 5'ten fazla (deneysel olarak bulunmuştur). Ancak o zaman (yeterince büyük bir istatistiksel örnekle) deneysel koşulların tatmin edici olduğu düşünülebilir.

Yani doğrulama prosedürü aşağıdaki gibidir.

İstatistiksel bağımsızlık testleri

1) Sıradaki sayıların görülme sıklığının kontrol edilmesi

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 bağladığımızda, elimizde: 24633899915467766618 bulunur.

Teorik olasılığın açık olduğu açıktır. P Ben kayıp Ben 0'dan 9'a kadar olan rakam 0,1'e eşittir.

2) Aynı sayı serisinin görünümünün kontrol edilmesi

ile belirtelim N L uzunluktaki bir satırdaki aynı rakam serisinin sayısı L. Her şeyin kontrol edilmesi gerekiyor L 1'den M, Nerede M bu, kullanıcı tarafından belirlenen bir sayıdır: bir seride oluşan maksimum aynı basamak sayısı.

“24633899915467766618” örneğinde uzunluğu 2 (33 ve 77) olan 2 seri bulunmuştur, yani N 2 = 2 ve 2 uzunluğunda 3 serisi (999 ve 666), yani N 3 = 2 .

Bir dizi uzunluğun ortaya çıkma olasılığı L eşittir: P L= 9 10 L (teorik). Yani, bir karakter uzunluğunda bir dizinin oluşma olasılığı şuna eşittir: P 1 = 0,9 (teorik). İki karakterden oluşan bir serinin ortaya çıkma olasılığı: P 2 = 0,09 (teorik). Üç karakterden oluşan bir serinin ortaya çıkma olasılığı: P 3 = 0,009 (teorik).

Örneğin bir karakter uzunluğundaki bir dizinin oluşma olasılığı P L= 0,9, çünkü 10 sembolden yalnızca biri olabilir ve toplamda 9 sembol vardır (sıfır sayılmaz). Ve iki özdeş "XX" sembolünün arka arkaya gelme olasılığı 0,1 · 0,1 · 9'dur, yani "X" sembolünün ilk sırada görünme olasılığı 0,1, ilk konumda görünme olasılığı 0,1 ile çarpılır. aynı sembol ikinci "X" konumunda görünecek ve bu kombinasyonların sayısı 9 ile çarpılacaktır.

Serilerin oluşma sıklığı, daha önce tartıştığımız ki-kare formülü kullanılarak hesaplanır. P L .

Not: Jeneratör birden fazla kez test edilebilir ancak testler tamamlanmamıştır ve jeneratörün rastgele sayılar ürettiğini garanti etmez. Örneğin, 12345678912345 dizisini üreten bir jeneratör, testler sırasında ideal kabul edilecektir ki bu kesinlikle tamamen doğru değildir.

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

Lütfen tek tıklamayla hizmete yardımcı olun: Arkadaşlarınıza jeneratörden bahsedin!

1 tıklamayla çevrimiçi numara oluşturucu

Web sitemizde sunulan rastgele sayı üreteci çok kullanışlıdır. Örneğin çekilişlerde ve piyangolarda kazananı belirlemek için kullanılabilir. Kazananlar şu şekilde belirlenir: Program sizin belirlediğiniz herhangi bir aralıkta bir veya daha fazla sayı üretir. Hileli sonuçlar hemen göz ardı edilebilir. Ve bu sayede kazanan dürüst bir seçimle belirleniyor.

Bazen belirli sayıda rastgele sayıyı bir kerede elde etmek gerekebilir. Örneğin şansa güvenerek “35 üzerinden 4” piyango biletini doldurmak istiyorsunuz. Şunu kontrol edebilirsiniz: Eğer bir parayı 32 kez atarsanız, art arda 10 kez ters gelme olasılığı nedir (tura/yazıya 0 ve 1 rakamları atanabilir)?

Rastgele sayı çevrimiçi video eğitimi - rastgeleleştirici

Sayı oluşturucumuzun kullanımı çok kolaydır. Bilgisayarınıza bir program indirmenize gerek yoktur - çevrimiçi olarak kullanılabilir. İhtiyacınız olan sayıyı elde etmek için rastgele sayıların aralığını, miktarını ve istenirse sayı ayırıcıyı ayarlamanız ve tekrarları ortadan kaldırmanız gerekir.

Belirli bir frekans aralığında rastgele sayılar oluşturmak için:

  • Bir aralık seçin;
  • Rastgele sayıların sayısını belirtin;
  • “Numara ayırıcı” işlevi, ekranlarının güzelliğine ve rahatlığına hizmet eder;
  • Gerekirse onay kutusunu kullanarak tekrarları etkinleştirin/devre dışı bırakın;
  • "Oluştur" düğmesini tıklayın.

Sonuç olarak, belirli bir aralıkta rastgele sayılar alacaksınız. Sayı üretecinin sonucu kopyalanabilir veya e-postayla gönderilebilir. Bu nesil sürecinin ekran görüntüsünü veya videosunu çekmek en doğrusu olacaktır. Rastgeleleştiricimiz tüm sorunlarınızı çözecektir!

Piyango biletleri için rastgele sayı üreteci "olduğu gibi" formatında ücretsiz olarak sağlanmaktadır. Geliştirici, script kullanıcılarının maddi ve manevi kayıplarından dolayı herhangi bir sorumluluk kabul etmez. Bu hizmeti riski size ait olmak üzere kullanabilirsiniz. Ancak ne olursa olsun kesinlikle risk almak istemezsiniz :-).

Çevrimiçi piyango biletleri için rastgele sayılar

Bu yazılım (JS'deki RNG), Javascript programlama dili kullanılarak uygulanan bir sözde rastgele sayı üretecidir. Jeneratör rastgele sayıların düzgün bir dağılımını üretir.

Bu, piyango şirketinden tekdüze bir dağılımla rastgele sayılarla yanıt vermek için RNG'de tekdüze bir dağılımla "kama ile kama" çıkarmanıza olanak tanır. Bu yaklaşım, oyuncunun öznelliğini ortadan kaldırır, çünkü insanlar sayıların ve sayıların seçiminde (akrabaların doğum günleri, unutulmaz tarihler, yıllar vb.) belirli tercihlere sahiptir ve bu da sayıların manuel olarak seçimini etkiler.

Ücretsiz araç, oyuncuların piyangolar için rastgele sayılar seçmesine yardımcı olur. Rastgele sayı üreteci komut dosyası, Gosloto 36 üzerinden 5, 45 üzerinden 6, 49 üzerinden 7, 20 üzerinden 4, Sportloto 49 üzerinden 6 için önceden yapılandırılmış modlara sahiptir. diğer piyango seçenekleri için ücretsiz ayarlar.

Piyango kazandıran tahminler

Tahminin gerçekleşme olasılığı düşük olmasına rağmen, tek tip dağılıma sahip bir rastgele sayı üreteci, bir piyango çekilişi için burç görevi görebilir. Ancak yine de, rastgele sayı üreteci kullanmak, diğer birçok piyango stratejisiyle karşılaştırıldığında iyi bir kazanma olasılığına sahiptir ve ayrıca sizi şanslı sayıların ve kombinasyonların zor seçiminin acısından kurtarır. Kendi adıma, günaha yenik düşmenizi ve ücretli tahminler satın almanızı tavsiye etmiyorum, bu parayı kombinatorik üzerine bir ders kitabına harcamak daha iyidir. Bundan pek çok ilginç şey öğrenebilirsiniz, örneğin Gosloto'da büyük ikramiyeyi kazanma olasılığı 36 üzerinden 5'tir. 1 İle 376 992 . Ve 2 sayıyı tahmin ederek minimum ödülü alma olasılığı 1 İle 8 . RNG'mize dayalı tahminin kazanma olasılığı aynıdır.

İnternette geçmiş çekilişler dikkate alınarak piyango için rastgele sayılar talep ediliyor. Ancak piyangonun tekdüze bir dağılımla RNG kullanması ve bir veya başka bir kombinasyon elde etme olasılığının her çekilişe bağlı olmaması koşuluyla, geçmiş çekilişlerin sonuçlarını hesaba katmaya çalışmak anlamsızdır. Ve bu oldukça mantıklı çünkü piyango şirketlerinin katılımcıların kazanma olasılığını artırmak için basit yöntemler kullanmalarına izin vermesi karlı değil.

Piyango organizatörlerinin sonuçlara hile karıştırdığı sıklıkla konuşuluyor. Ama aslında bu hiç mantıklı değil, hatta tam tersine, piyango şirketleri piyango sonuçlarını etkileseydi, o zaman kazanma stratejisi bulmak mümkün olurdu ama şu ana kadar kimse başarılı olamadı. Bu nedenle topların eşit olasılıkla düşmesi piyango organizatörleri için çok karlı. Bu arada, 36 piyangodan 5'inin tahmini getirisi %34,7'dir. Böylece, piyango şirketi bilet satışlarından elde edilen gelirin% 65,3'ünü elinde tutuyor, fonların bir kısmı (genellikle yarısı) ikramiyenin oluşumuna tahsis ediliyor, paranın geri kalanı organizasyon giderlerine, reklamlara ve şirketin net kârına gidiyor. Dolaşım istatistikleri bu rakamları mükemmel bir şekilde doğruluyor.

Sonuç olarak - anlamsız tahminler satın almayın, ücretsiz bir rastgele sayı üreteci kullanın, sinirlerinize dikkat edin. Rastgele sayılarımız şanslı sayılarınız olsun. İyi bir ruh haliniz olsun ve harika bir gün geçirin!