Rastgele Sayı Üretici — Belirlediğiniz Aralıkta Sapmasız Sayı Üret

Rastgele sayı üretmek için aşağıdaki araca alt sınırı, üst sınırı ve kaç sayı istediğinizi yazmanız yeterli: sayı tarayıcınızda anında üretilir. Aynı sayının tekrar gelmesini istemiyorsanız tekrarsız seçeneğini işaretleyin, sonucu sıralatın ve tek tıkla kopyalayın. Aracın ürettiği sayılarda modulo sapması yoktur — bunun ne demek olduğunu ve neden çoğu online üreticide sessizce bulunduğunu aşağıda ölçümle anlatıyoruz.

Sık kullanılan aralıklar:

İçindekiler

Rastgele sayı üretici nasıl kullanılır?

Araç dört alandan oluşur ve hepsi isteğe göre değiştirilebilir:

  • Alt ve üst sınır — üretilecek sayının en küçük ve en büyük değeri. Sınırlar kapalıdır: 1 ile 10 yazdığınızda 1 de 10 da çıkabilir. Negatif sayı yazabilirsiniz (örneğin -50 ile 50).
  • Kaç sayı üretilsin — bir seferde en çok 1.000 sayı üretilir.
  • Sıralama — sonucu üretildiği sırayla, küçükten büyüğe ya da büyükten küçüğe görebilirsiniz. Sıralama yalnız gösterimi değiştirir, üretimi etkilemez.
  • Tekrarsız üret — işaretlendiğinde aynı sayı iki kez çıkmaz; çekiliş ve kura biçimindeki işler için gereken seçenek budur.

Formun altındaki hazır kalıp düğmeleri en sık aranan aralıkları (1-10, 1-100, 1-1000, 1-49 arası altı tekrarsız sayı, dört haneli kod) tek tıkla doldurur. Sonucu kopyala düğmesi üretilen sayıları virgülle ayrılmış biçimde panoya alır.

Sayılar gerçekten rastgele mi?

Evet, ve nasıl üretildiği burada açıkça yazılıdır. Sayı sizin tarayıcınızda, işletim sisteminin kriptografik rastgelelik havuzuna bağlanan crypto.getRandomValues ile üretilir. Web sayfalarında yaygın olan Math.random() bu araçta bilerek kullanılmamıştır: o işlev animasyon ve oyun için tasarlanmıştır, ürettiği dizi tahmin edilebilir olabilir ve tarayıcıdan tarayıcıya değişen kalitesizlikte olabilir.

Üretimin sunucuda değil tarayıcıda yapılmasının teknik bir sebebi daha var: site sayfaları önbelleğe alınıyor. Sayı sunucuda üretilseydi, aynı sonuç önbellek süresi boyunca sayfayı açan herkese aynı görünürdü — yani sayı aslında üretilmemiş olurdu. Tarayıcıda üretim aynı zamanda gizlilik anlamına gelir: girdiğiniz sınırlar ve üretilen sayılar sunucuya hiç gönderilmez.

Rastgelelik kaynağının tanımı için tarayıcı belgelerine ve standarda bakabilirsiniz: MDN — Crypto.getRandomValues() ve W3C Web Cryptography API. Aynı kaynağı zar atma, yazı tura ve şifre oluşturucu araçları da kullanır.

Modulo sapması: çoğu üreticinin sessiz hatası

Bu aracın en önemli teknik ayrıntısı burada. Bilgisayar rastgeleliği bayt hâlinde üretir; bir bayt 256 farklı değer alır. Bunu 1-10 aralığına indirmenin en kolay yolu kalanı almaktır (x % 10) — ama 256 sayısı 10’a tam bölünmez:

256 = 10 × 25 + 6

Artan 6 değer yüzünden ilk altı sayı 26 ayrı yoldan, kalan dört sayı ise 25 yoldan gelir. Yani düz modulo yazan bir üreticide küçük sayılar büyüklerden %4 daha sık çıkar. Fark küçüktür ama vardır ve kurayı adaletsiz kılar; üstelik kullanıcı bunu gözle asla fark edemez.

Düz modulo ile ilk altı sayının fazla gelmesi ve reddetme örneklemesiyle sapmanın sıfırlanması

Bu araç bunun yerine reddetme örneklemesi uygular: aralığa eşit bölünen bölgenin dışına düşen çekiliş çöpe atılır ve yenisi çekilir. 1-10 aralığında kabul sınırı 250’dir; üstteki 6 değer reddedilir. Böylece sapma yaklaşık olarak değil, tam olarak sıfır olur.

AralıkÇekiliş kapasitesiKabul sınırıArtan (reddedilen) değerRed olasılığı
10 sayılık aralık1 bayt (256 değer)2506yaklaşık 43’de 1
100 sayılık aralık1 bayt (256 değer)20056yaklaşık 5’de 1
1000 sayılık aralık2 bayt (65.536 değer)65.000536yaklaşık 122’de 1
49 sayılık aralık1 bayt (256 değer)24511yaklaşık 23’de 1

Reddetme maliyeti ihmal edilebilir düzeydedir: kabul oranı hiçbir aralıkta yarının altına inmez, pratikte neredeyse her çekiliş ilk denemede kabul edilir. Aralık genişliği 2’nin kuvvetiyse (2, 4, 8, 16, 256 gibi) hiç red yaşanmaz, çünkü bölme tam olur. Aynı ders şifre oluşturucu aracında da geçerlidir.

Bir teknik ayrıntı daha: aralık genişliği çok büyük olabildiği için (9.007.199.254.740.991 sınırına kadar) çekiliş tek bir 32 bitlik sayıyla değil, gereken bayt sayısı kadar yapılır ve hesap tam sayı aritmetiğiyle yürütülür. Böylece geniş aralıklarda kayan nokta yuvarlamasından doğan sapma da oluşmaz.

Ölçülen düzgünlük: 600 bin çekilişin sonucu

İddiayı sözde bırakmamak için motoru ölçtük: 1-10 aralığında 600.000 sayı üretildi ve her sayının kaç kez geldiği sayıldı. Beklenen değer sayı başına 60.000’dir.

600 bin çekilişte 1-10 arası her sayının neredeyse eşit sayıda gelmesi
  • En az gelen sayı: 59.698 kez · en çok gelen: 60.445 kez
  • Beklenenden en büyük sapma: %0,742
  • Ki-kare uyum istatistiği: 10,92 (9 serbestlik derecesi; %99,9 anlamlılık eşiği 27,88)

Ki-kare değerinin eşiğin altında kalması, gözlenen dağılımın düzgün dağılımdan ayırt edilemediği anlamına gelir. Düz modulo kullanılsaydı bu ölçüde bir örneklemde değer eşiği kolayca aşardı. İstatistiğin kendisini merak ediyorsanız standart sapma ve ortalama hesaplama sayfaları kavramları adım adım anlatıyor; oranları karşılaştırmak için yüzde hesaplama aracı işinizi görür.

Tekrarsız üretim ne işe yarar?

Varsayılan üretimde her sayı bağımsız çekilir; bu yüzden aynı sayı birden çok kez gelebilir. Bu bir hata değildir — zar atmak gibidir, her atış öncekini hatırlamaz. Ama kura ve çekiliş biçimindeki işlerde aynı numaranın iki kez çıkması istenmez. Aynı sayı tekrar gelmesin seçeneği tam olarak bunu sağlar.

Örnek: 1-49 aralığından altı tekrarsız sayı seçmek sayısal loto biçimidir. Bu biçimde toplam 13.983.816 farklı altılı birleşim vardır; aracın her çalıştırmada seçtiği birleşim bunlardan biridir ve hepsi eşit olasılıklıdır. Bu tür sayımları kendiniz yapmak isterseniz kombinasyon hesaplama aracı kullanılabilir.

Tekrarsız modda istenen adet aralıktaki sayı adedinden büyük olamaz; örneğin 1-5 aralığından 6 tekrarsız sayı istenemez ve araç bunu hata olarak bildirir. Aralık dar olduğunda üretim, aralığı diziye açıp karıştırma yöntemiyle yapılır; geniş olduğunda görülen sayıların kümesi tutulur. İki yol da aynı sonucu verir, yalnız hız için ayrılmıştır.

Nerelerde kullanılır?

  • Sınıf ve toplantı — öğrenci listesindeki sıra numarasından kişi seçmek, sunum sırası belirlemek.
  • Oyun — tahmin oyunları, sayı tutma, ev yapımı kutu oyunlarında zar yerine geniş aralıklı sayı.
  • Örnekleme — bir listeden denetim için rastgele kayıt seçmek; burada tekrarsız üretim kullanılmalıdır.
  • Test verisi — yazılım denemelerinde rastgele numara, kod, miktar üretmek.
  • Karar verme — iki ya da daha çok seçenek arasında tarafsız seçim. Seçenekleri isimle yazmak isterseniz karar çarkı ya da çekiliş yapma araçları daha uygundur; iki seçenek için yazı tura yeterlidir.

Sayılarla çalışmayı sürdürmek isterseniz bu bölümdeki asal sayılar, üslü sayı hesaplama, sayıyı yazıya çevirme ve Roma rakamı çevirici araçlarına da bakabilirsiniz.

Sınırlar ve kullanılmaması gereken yerler

Araç eğlence, eğitim, iç kullanım ve test amaçlıdır. Şu durumlarda tek başına yeterli değildir:

  • Noter huzurunda yapılması gereken çekilişler ve kamu kurumlarının kura işlemleri kendi mevzuatına tabidir; bu sayfanın çıktısı böyle bir süreçte resmî kura yerine geçmez ya da delil sayılmaz.
  • Kriptografik anahtar üretimi için bu araç değil, doğrudan ilgili güvenlik kütüphanesi kullanılmalıdır. Şifre üretmek istiyorsanız şifre oluşturucu aracı bu iş için tasarlanmıştır.
  • Sonucun ispatlanması gereken kamuya açık çekilişler — burada üretilen sayının üçüncü bir tarafça doğrulanabilir bir kaydı yoktur, çünkü hiçbir veri sunucuya gönderilmez.

Buna karşılık üretimin adaleti konusunda gizli bir kusur yoktur: yöntem bu sayfada açıkça yazılıdır, motor 28 otomatik testle denetlenmektedir ve düzgünlük yukarıda ölçümle gösterilmiştir.

Sıkça sorulan sorular

Rastgele sayı üretici hileli olabilir mi?

Bu araçta sayı tarayıcınızda üretilir, sunucuya hiçbir veri gönderilmez ve sonuç önceden üretilip saklanmaz. Kullanılan kaynak işletim sisteminin kriptografik rastgelelik üretecidir; ayrıca modulo sapması reddetme örneklemesiyle sıfırlanmıştır. Genel olarak ise bir üreticinin adil olup olmadığı, hangi yöntemi kullandığını açıkça yazıp yazmadığından anlaşılır.

Aynı sayı art arda geliyor, araç bozuk mu?

Hayır, bu rastgeleliğin doğal davranışıdır. 1-10 aralığında aynı sayının üst üste iki kez gelme olasılığı 10’da 1’dir; yani her on üretimde bir beklenir. Gerçekten rastgele diziler, insanların “rastgele” sandığından daha çok tekrar içerir. Aynı sayının hiç gelmemesini istiyorsanız tekrarsız seçeneğini işaretleyin.

Bir seferde kaç sayı üretebilirim?

En çok 1.000 sayı. Aralık sınırları ise 9.007.199.254.740.991 değerine kadar çıkabilir; negatif sayı da yazılabilir.

Ürettiğim sayılar saklanıyor mu?

Hayır. Sınırlar da sonuçlar da yalnız açık olan sekmede tutulur; sayfayı yenilediğinizde kaybolur ve sunucuya gönderilmez.

Aynı sayıyı tekrar üretebilir miyim (tohum verebilir miyim)?

Hayır, bu araçta tohum (seed) girişi bulunmaz. Tohum verilebilen üreticiler tekrarlanabilir dizi üretir; bu, yazılım testinde yararlıdır ama kura ve çekilişte sonucun önceden bilinebilmesi anlamına geleceği için burada bilerek yer verilmemiştir.

1-49 arası 6 tekrarsız sayı üretmek loto kazandırır mı?

Hayır. Araç yalnız eşit olasılıklı bir birleşim seçer; 13.983.816 olası altılı birleşimin hepsi aynı olasılığa sahiptir ve hiçbir sayı ya da birleşim diğerinden şanslı değildir. Geçmiş çekiliş sonuçlarına bakarak “sık çıkan sayı” seçmek olasılığı değiştirmez.

Kaynaklar ve yöntem

Sayfadaki kabul sınırı, reddedilen değer ve red olasılığı rakamları aracın kendi motorundan hesaplanarak basılmıştır; düzgünlük ölçümü 600.000 çekilişlik bir örneklemde ki-kare uyum sınamasıyla yapılmıştır. Motor 28 otomatik testle denetlenir (aralık taşması, tekrarsızlık, sıralama, hata durumları, artan bölgenin gerçekten reddedilmesi ve iki ayrı ki-kare düzgünlük sınaması).