1 ile 100 arasında 25 rastgele sayının en fazla birden fazla görünmesi olasılığı nedir?


23

Birçok çevrimiçi oyunda, oyuncular zor bir görevi tamamladığında, bazen görevi tamamlayan herkesin kullanabileceği özel bir ödül verilir. bu genellikle bir montajdır (taşıma yöntemi) veya başka bir makyaj malzemesidir (karakterin performansını artırmayan ve esas olarak görünüm kişiselleştirmesi için kullanılır).

Böyle bir ödül verildiğinde, ödülü kimin kazandığını belirlemenin en yaygın yolu rastgele sayılardır. Oyun genellikle 1 ile 100 arasında (bazen oyuncu başka bir yayma seçebilir, ancak 100 en yaygın olanıdır) rastgele (muhtemelen sahte ve şifreli güvenli rastgele değil) sayı üreten özel bir komuta sahiptir. Her oyuncu bu komutu kullanır, tüm oyuncular kimin neyi yuvarladığını görebilir ve eşya en yüksek puanı alan kişiye verilir. Oyunların çoğunda, oyuncuların sadece bir düğmeye bastığında ve herkes kendi düğmesine bastığında, oyunun gerisini otomatik olarak halleder.

Bazen, bazı oyuncular aynı sayıda üretiyor ve hiç kimse onları yenmiyor. bu genellikle benzersiz bir en yüksek sayı elde edilinceye kadar, sayılarını yeniden oluşturan oyuncular tarafından çözülür.

Sorum şu: 1 - 100 arasında herhangi bir sayıyı aynı olasılıkta üretebilen rastgele bir sayı üreteci varsayalım. Her birinin bu kadar rasgele sayı üreteci (her biri kendi tohumlarına sahip olan) ile 1 sayı üreten 25 kişilik bir grubunuz olduğunu varsayalım. Ne kadar oyuncunun belirli bir uyuşturucuyu yuvarladığı konusunda sınırlama olmaksızın ve sayılar arasında bir ilişki yokken, 1 ile 100 arasında 25 sayı olacak. Üretilen en yüksek sayının 1'den fazla oyuncu tarafından üretilme şansı nedir? Başka bir deyişle, kravat olasılığı nedir?


7
World of Warcraft ha?
Behacad

1
evet, soruda belirtildiği gibi üniform rastgeledir (1 ile 100 arasında herhangi bir sayı dahil olmak üzere aynı olasılık vardır.
Nzall

Güzel soru, ama bu bir kazanan seçmenin kötü bir yolu olarak beni etkiliyor. Sadece oyuncuları bir şekilde listeleyiniz ("alfabetik olarak isimler" diyebilirsiniz veya listeyi karıştırınız ve herkesi gösteriniz veya başka bir şekilde sıralayınız) ve 1 ile 25 arasında rastgele bir sayı seçiniz.
Tim S.,

2
Noobs, DKP'yi kullan!
Davor

2
Öneri: rastgele örneklem verilen ila U { 1 , ... , 100 } , biz hesaplamamız gerekir P ( X ( 24 ) < X ( 25 ) ) biz sipariş istatistik teorisinden bildiklerini kullanarak. X1,...,X25U{1,...,100}P(X(24)<X(25))
Zen

Yanıtlar:


25

let

  • , menzilinizin en üstünde, x = 100 durumunda.xx=100
  • toplam çizer sayısı olmak n = 25 senin durumunda.nn=25

Herhangi bir sayı için, , dizilerin sayısı , n dizisindeki her numara ile sayılar y olan Y , n . Bu sekans ki, hiçbir içeren sayı Y s ( y - 1 ) , n , ve bir ihtiva sayısı y olan n ( Y - 1 ) , n - 1 . Bu nedenle, iki ya da daha fazla olan dizilerin sayısı Y S'dir Y , n - ( Y - 1 ) n,yxnyyny(y1)nyn(y1)n1y dizilerinin toplam sayısı n en fazla olan numaralar y , en az iki içeren Y S'dir x Σ y = 1 ( y , n - ( Y - 1 ) n - N ( y - 1 ) n - 1 )

yn(y1)nn(y1)n1
nyy
y=1x(yn(y1)nn(y1)n1)=y=1xyny=1x(y1)ny=1xn(y1)n1=xnny=1x(y1)n1=xnny=1x1yn1

Dizilerin toplam sayısı, sadece bir . Tüm diziler eşit derecede muhtemeldir ve bu nedenle olasılık x n - n y = x - 1 y = 1 y n - 1'dir.xn

xnny=1y=x1yn1xn

İle Ben olasılık 0,120004212454 olun.x=100,n=25

x,n

import itertools
import numpy.random as np

def countinlist(x, n):
    count = 0
    total = 0
    for perm in itertools.product(range(1, x+1), repeat=n):
        total += 1
        if perm.count(max(perm)) > 1:
            count += 1

    print "Counting: x", x, "n", n, "total", total, "count", count

def simulate(x,n,N):
    count = 0
    for i in range(N):
        perm = np.randint(x, size=n)
        m = max(perm)
        if sum(perm==m) > 1:
            count += 1
    print "Simulation: x", x, "n", n, "total", N, "count", count, "prob", count/float(N)

x=100
n=25
N = 1000000 # number of trials in simulation

#countinlist(x,n) # only call this for reasonably small x and n!!!!
simulate(x,n,N)
formula = x**n - n*sum([i**(n-1) for i in range(x)])
print "Formula count", formula, "out of", x**n, "probability", float(formula) / x**n

Bu program çıktı

Simulation: x 100 n 25 total 1000000 count 120071 prob 0.120071
Formula count 12000421245360277498241319178764675560017783666750 out of 100000000000000000000000000000000000000000000000000 probability 0.120004212454

2
2000000,11957

xn

Perl kullanarak simülasyon yaptım ve çok tutarlı bir 0.005 elde ettim . pastebin.com/gb7JMLt6
agweber

xnx=20,n=515600/160000=0.0975x,nve türetilmiş formülden olasılık. Kurallarımız arasındaki anlaşmazlığın kaynağının ne olduğunu bilmek merak ediyorum.
TooTone

4
1070.119983,n = 10^7; Total[Boole[Equal @@ (#[[Ordering[#, -2]]])] & /@ x = RandomInteger[{1, 100}, {n, 25}]] / n

3

İlk önce benzersiz bir kazanan olma olasılığını bulmayı düşünürdüm

x(251)(x-1)2410025y-1

Kazanan sayısı 2 ile 100'e eşit olabilir, bu nedenle toplam olasılık

Σben=210025(ben-1)2410025=25Σben=199ben2410025=-14+25Σben=1100ben2410025-14+25124+110024+1+1210024+242161002310025=0,88

Buraya kadar yaklaşımı kullandım. 10023 Başvuru için: https://en.wikipedia.org/wiki/Faulhaber 's_formula

Dolayısıyla kravat sahibi olma olasılığı 1-0,88=0.12


-3

Doğum günü paradoksuna çok benzer bir soru gibi görünüyor ( http://en.wikipedia.org/wiki/Birthday_problem ), tek fark, bu durumda herhangi bir sayı ile eşleşmek istemediğiniz ancak en yüksek sayı. Hesaplamadaki ilk adım, rastgele sayıların olmayanların çakışma olasılığını hesaplar (p). (yukarıdaki bağlantıya bakın) ve sonra 25 sayının bazılarının üst üste binme olasılığı1-pp zaten hesaplamış olduğunuz olasılıktır. Bu durumda, 25 sayının maksimumla örtüşmeme olasılığı aşağıdakiler tarafından verilir: p=1*(1-1/100)*(1-1/100)......*(1-1/10)=(1-1/100)24 o zaman aradığınız olasılık P=1-p=1-(1-1/100)24=0.214


Bu, olasılığın% 21,4 olduğu anlamına mı geliyor? oldukça yüksek görünüyor, ama sonra yine, doğum günü paradoksunun benzer şaşırtıcı bir cevabı var. Teşekkürler.
Nzall

6
-1 Olduğu gibi, bu cevap doğru değil. Doğru cevap @TooTone tarafından sağlandı.
COOLSerdash
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.