TextFizz
  1. Ana sayfa
  2. Araçlar
  3. Rastgele Sayı Üreteci

Rastgele Sayı Üreteci

Min ve Max değerlerini gir, kaç sayı istediğini seç, Üret'e bas — aletin tamamı bu kadar. Her sayı, tarayıcının kriptografik rastgele üretecinden, modulo yanlılığı tamamen kaldırılmış şekilde geliyor, yani 1 ile 100'ün çıkma ihtimali tam olarak 57 ile aynı. Bir çekilişte kazanan seçerken ya da loto tarzı sayılar üretirken Tekrarsız kutusunu işaretle.

Her şey tarayıcında çalışır. Yazdığın şey sunucumuza gönderilmez.

Şunu da dene:🎱 Sihirli 8 Top🎲 Zar At🕹️ Rastgele Oyun Seçici👥 Rastgele Takım Oluşturucu
⧉ Bu aracı sitene ekle

Nasıl kullanılır

  1. Aralığı Minimum ve Maksimum'a yaz. Negatifler dahil her tam sayı çalışır; büyük sayıyı Minimum'a koyarsan alet onları senin için değiştirir.
  2. Kaç sayı istediğini ayarla — tek çekilişte 1 ile 1000 arası.
  3. Aynı sayı iki kez çıkmamalıysa Tekrarsız kutusunu işaretle (çekiliş kazananları, loto tarzı sayılar, numaralı bir listeyi karıştırma).
  4. Üret'e bas. Sonuç büyük alanda görünür; kısa çekilişlerde sayılar boşlukla, 20'den fazla olduğunda virgülle ayrılır.
  5. Tüm sonucu panoya kopyalamak için Kopyala'yı kullan — Discord konusuna ya da yayın sohbetine kanıt olarak yapıştırmak için kullanışlı.

İnsanların gerçekten kullandığı aralıklar

"Rastgele bir … seç" diye başlayan hemen hemen her soru bir aralığa ve bir sayıya indirgenir. En sık karşılaşılan durumlar için ayarlar aşağıda.

İhtiyacın olanMinMaxKaç taneTekrarsız
Evet / hayır, kim başlıyor121kapalı
Zar atışı161kapalı
Rastgele bir olay için yüzde atışı11001kapalı
240 katılımcıdan bir kazanan12401kapalı
240 katılımcıdan üç kazanan12403açık
87 oyunluk numaralı kütüphaneden rastgele oyun1871kapalı
Loto tarzı altı sayı1496açık
7 haritalık havuzdan rastgele harita171kapalı
Bir meydan okuma için rastgele silah slotu151kapalı
Dört haneli bir kod100099991kapalı

Sayı olmayan her şey için — isimler, takımlar, oyunlar, cezalar — hile şu: önce listeyi numaralandır. 1. satır, 2. satır, 3. satır, sonra o aralıkta çekiliş yap. Üreteç listeni hiçbir zaman görmüyor, ve tam da bu yüzden kimse onu bir arkadaşı kayırmakla suçlayamaz.

Kimsenin itiraz edemeyeceği bir çekiliş kazananı nasıl seçilir

Tek başına rastgele bir sayı hiçbir şey kanıtlamaz. Bir çekilişi tartışılmaz kılan, işleri yaptığın sıradır.

  1. Önce katılımcı listesini dondur ve paylaş — bir yorum listesi, bir tablo, dışa aktarılmış bir CSV, izleyicinin sayabileceği her şey.
  2. Katılımları 1'den N'ye numaralandır. Tekrarlanan kullanıcı adları üç değil bir numara alır.
  3. Aralığı ve sayıyı çekilişten önce yüksek sesle söyle: "birden 240'a, üç kazanan, tekrarsız". İnsanları şüphelendiren şey, sayılar çıktıktan sonra duyuru yapmaktır.
  4. Ekranı kaydet ya da canlı çek. Üreteç tarayıcında çalışır ve hiçbir log tutmaz, o yüzden kanıt senin kaydın, bizim sunucumuz değil.
  5. Sayıları eşleşen isimlerle birlikte paylaş.

Olasılıklar çoğu insanın sandığından basit. Tek kazananla, her katılımın 1/N şansı var: 100 katılımda %1, 240'ta yaklaşık %0,42, 1000'de %0,1. Tekrarsız açıkken üç kazanan çekmek, bireysel bir katılımın şansını kabaca üçe katlıyor — 240 üzerinden yaklaşık %1,25 — çünkü her çekilişten sonra kalan sayı havuzu küçülüyor.

KatılımBir katılımın şansı (1 kazanan)Bir katılımın şansı (3 kazanan, tekrarsız)
50%2%6
100%1%3
240%0,42%1,25
1000%0,1%0,3

Sayılar nereden geliyor

Üreteç, tarayıcıların şifreleme anahtarları oluşturmak için de kullandığı Web Crypto API olan crypto.getRandomValues()'ı çağırır. Tahmin edilemez bitlerle 32 bitlik bir alanı doldurur — tahmin edilebilecek bir tohum yok, beklenip geçilecek tekrarlayan bir döngü yok.

Ham bitler tek başına adil bir aralık değildir. 32 bitlik bir değerin 2^32 = 4.294.967.296 olası durumu vardır, ve bu sayı aralığının boyutuna nadiren tam bölünür. 1–100'ü ele alalım: 2^32, 96 kalan bırakır, yani düz bir değer % 100 ilk 96 sayıya birer fazladan şans verirdi. Çözüm reddetme örneklemesidir: bu kalana düşen her ham değer atılır ve yeni bir değer çekilir. 1–100 aralığı için bu yaklaşık her 45 milyon çekilişte bir olur, ve hızda bir fark hiç fark etmezsin, ama aralıktaki her sayı sonunda aynı payı alır.

Boyutu ikinin kuvveti olan aralıklar — 1–2, 1–8, 1–256 — tam bölünür ve hiçbir zaman yeniden çekilişe ihtiyaç duymaz. Geri kalan her şey duyar, bu yüzden bu kontrol her zaman açıktır.

Çoğu sitenin kullandığı alternatif olan Math.random(), bir sözde rastgele üreteçtir: hızlıdır, bir arka plan animasyonunu karıştırmak için iyidir, ama bir tohumu vardır ve çıktısı belirlenimci bir dizidir. Ödülün olduğu her şey için yanlış alettir.

Tekrarlar açık mı kapalı mı

Tekrarsız kapalıyken, her sayı bağımsız bir çekiliştir, tıpkı aynı zarı tekrar atmak gibi. Tekrarlar bir hata değildir — gerçek rastgeleliğin görünüşü budur, ve insanların beklediğinden çok daha erken ortaya çıkarlar.

Çekiliş1–100 aralığı1–1000 aralığı
5 sayı%9,7%1,0
10 sayı%37,2%4,4
20 sayı%87,0%17,4
25 sayı%96,2%26,1
40 sayı%99,9'un üzerinde%54,6

Tablo, çekilişteki en az iki sayının eşleşme ihtimalini gösteriyor. Yüzden yirmi sayı neredeyse on kere dokuzunda tekrar ediyor — bu, otuz kişilik bir sınıfta insanları şaşırtan aynı doğum günü paradoksu etkisi.

Kutuyu aç ve sonuçtaki her sayı benzersiz olur. Aralığın sığdırdığından fazla sayı istersen — 1 ile 50 arasında 60 benzersiz sayı — alet sessizce sana tüm aralığı verir, 50 sayı rastgele sırayla. Bu aynı zamanda numaralı bir listeyi karıştırmanın en hızlı yoludur: aralığı 1'den N'ye ayarla, sayıyı N yap, tekrarsızı aç, ve sonucu yukarıdan aşağıya yeni sıralaman olarak oku.

Ganimet, meydan okuma ve ev kuralları için zar atmak

Çekiliş botlarından çok önce, oyuncular anlaşmazlıkları bir sayı atarak çözerdi. Bu gelenek, onu icat eden her MMO'dan daha uzun yaşadı: herkes aynı aralıkta atar, en yüksek sayı eşyayı alır, ve berabere kalanlar sadece kendi aralarında yeniden atar.

Burada bir tane çalıştırmak için, aralığı 1–100'e ayarla, sayıyı 1'de bırak, ve ya her oyuncunun kendi ekranında Üret'e basmasına izin ver ya da herkes için sen at ve listeyi sırayla paylaş. İki alışkanlık işi temiz tutar: aralığı ilk atıştan önce belirt, ve beraberlikte ödülü bölmek yerine yeniden at. Dünkü bir atış bu gece için geçerli değildir — bayat bir sayı, itiraz edilmesi en kolay şeydir.

Aynı alan, bir oturumu ilginç kılan küçük kararları da hallediyor.

AralıkSayının anlamıÖrnek
1–100Ganimet atışı, en yüksek alırİki oyuncu aynı düşen eşyayı istiyor
1–7Numaralı harita havuzunda pozisyonBir sonraki scrim hangi haritada oynanacak
1–5Ekipman ya da silah slotuTuru ne çıkarsa onunla oynarsın
1–10Kendine koyduğun meydan okuma ne kadar sert10, dürbün yok, çömelme yok, iletişim yok demek
1–20Yazılı bir meydan okuma listesinde indeksÖnce listeyi numaralandır, sonra çek
1–4Kim alışverişe çıkıyor, kim bırakıyor, kim çağırıyorDört oyuncu, bir görev

Yazıya dökülünce kalıp hep aynıdır: soruyu numaralı bir listeye çevir, o listenin içinde at ve sonucu kabul et. Üreteç sayıyı sağlar; adalet, aralık konusunda önceden anlaşmaktan gelir.

Bizimkini farklı kılan ne

  • Belirsiz bir "kanıtlanmış adil" rozeti yerine tamamen yukarıda açıklanan reddetme örneklemeli kriptografik rastgelelik.
  • Tek çekilişte 1000'e kadar sayı, ve aynı zamanda liste karıştırıcı olarak da çalışan bir Tekrarsız modu.
  • Negatif ve ters çevrilmiş aralıklar hata vermek yerine ele alınıyor.
  • Tek bir Kopyala düğmesi, bir Discord mesajı ya da çekiliş gönderisi için sonucun tamamını metin olarak verir.
  • Hesap yok, captcha yok, Üret düğmesini kapatan reklam yok, ve sayfa telefonda çalışıyor.

Kasıtlı olarak yapmadığı şey: sayfa yüklemeleri arasında geçmiş tutmuyor, isim listesi saklamıyor, ve ağırlıklı ya da "şanslı" bir modu yok. Ağırlıklı bir çekiliş artık rastgele bir çekiliş değildir, ve yenilemeden sonra hayatta kalan bir geçmiş sayılarını bir yere göndermek anlamına gelirdi.

Gizlilik

Her şey tarayıcının içinde gerçekleşir. Yazdığın aralık, sayı, ve aldığın sayılar hiçbir zaman hiçbir yere gönderilmez, hesap yoktur, log yoktur — yani biz dahil kimse ne çektiğini görüp değiştiremez. Sayfayı yenile ve önceki sonuç sonsuza dek kaybolur, bu yüzden herkese açık bir çekiliş için doğru kanıt ekran kaydıdır.

SSS

Bu rastgele sayı üreteci gerçekten rastgele mi?

Tarayıcının kriptografik üreteci olan crypto.getRandomValues()'ı, modulo yanlılığını kaldırmak için reddetme örneklemesiyle birlikte kullanır, yani aralığındaki her sayının şansı tam olarak aynıdır. Tohumlu bir Math.random() dizisi değildir.

Bununla nasıl çekiliş kazananı seçerim?

Katılımcılarını 1'den N'ye numaralandır, Minimum'u 1'e ve Maksimum'u N'ye ayarla, Kaç sayı'yı 1'de bırak ve Üret'e bas. Birden fazla kazanan için Kaç sayı'yı artır ve aynı kişinin iki kez kazanmaması için Tekrarsız'ı işaretle.

Tekrarsız sayı üretebilir mi?

Evet — bunun için Tekrarsız kutusu var. Sonuçtaki her sayı benzersizdir. Aralığın sığdırdığından fazla sayı istersen, sadece tüm aralığı rastgele sırayla alırsın.

En büyük aralık ne ve tek seferde kaç sayı çıkar?

Minimum ve Maksimum, negatifler dahil yazdığın herhangi bir tam sayıyı kabul eder, ve tek tıkla 1 ile 1000 arası sayı çekebilirsin. Ondalık girişler aşağı yuvarlanır, ve Maksimum Minimum'dan küçükse ikisi otomatik olarak yer değiştirir.

Önceki sayılarımı hatırlıyor mu?

Hayır. Geçmiş yok ve hiçbir şey saklanmıyor: sayfayı yenilemek temiz bir çekiliş başlatır. Sonucu tutman gerekiyorsa ayrılmadan önce Kopyala'ya bas.

Loto sayılarını tahmin edebilir mi?

Hayır, ve hiçbir üreteç edemez. Eşit olasılıkla sayı çeker, bu da hangi sayıları oynayacağını seçmek için yararlıdır, ama gerçek bir çekiliş ayrı bağımsız bir olaydır — geçmiş sonuçlar bir sonrakini hiçbir şekilde değiştirmez.

Neden art arda aynı sayıyı aldım?

Çünkü bağımsız çekilişlerin hafızası yoktur. 1–6 aralığında aynı değer yaklaşık altı çekilişte bir tekrar eder, ve bu doğru davranıştır. Tekrarlara izin verilmediğinde Tekrarsız'ı aç.

Benzer araçlar