Wie groß ist die Wahrscheinlichkeit, dass von 25 Zufallszahlen zwischen 1 und 100 die höchste mehrmals auftritt?


23

In vielen Online-Spielen erhält jeder Spieler, der eine schwierige Aufgabe erfüllt, manchmal eine besondere Belohnung, die er verwenden kann. Dies ist normalerweise ein Reittier (Transportmittel) oder ein anderes Eitelkeitsobjekt (Objekte, die die Leistung des Charakters nicht verbessern und hauptsächlich zur Anpassung des Erscheinungsbilds verwendet werden).

Wenn eine solche Belohnung vergeben wird, erfolgt die Ermittlung, wer die Belohnung erhält, am häufigsten über Zufallszahlen. Das Spiel hat normalerweise einen speziellen Befehl, der eine zufällige (wahrscheinlich pseudozufällige, nicht kryptografisch gesicherte) Zahl zwischen 1 und 100 erzeugt (manchmal kann der Spieler einen anderen Spread wählen, aber 100 ist der häufigste). Jeder Spieler benutzt diesen Befehl, alle Spieler können sehen, wer was gewürfelt hat, und der Gegenstand wird an die Person vergeben, die am höchsten gewürfelt hat. Die meisten Spiele haben sogar ein eingebautes System, in dem die Spieler nur einen Knopf drücken und sobald jeder seinen Knopf gedrückt hat, erledigt das Spiel den Rest automatisch.

Manchmal erzeugen einige Spieler die gleiche hohe Zahl und keiner schlägt sie. Dies wird normalerweise von den Spielern behoben, die ihre Zahlen neu generieren, bis es eine eindeutige Höchstzahl gibt.

Meine Frage lautet wie folgt: Nehmen Sie einen Zufallszahlengenerator an, der mit der gleichen Wahrscheinlichkeit eine beliebige Zahl zwischen 1 und 100 erzeugen kann. Angenommen, Sie haben eine Gruppe von 25 Spielern, die mit einem solchen Zufallsgenerator jeweils 1 Zahl erzeugen (jede mit ihrem eigenen Startwert). Sie haben 25 Zahlen zwischen 1 und 100, ohne Einschränkungen hinsichtlich der Anzahl der Spieler, die eine bestimmte Zahl würfeln, und ohne Beziehung zwischen den Zahlen. Wie groß ist die Chance, dass die höchste generierte Zahl von mehr als einem Spieler generiert wird? Mit anderen Worten, wie hoch ist die Wahrscheinlichkeit eines Unentschieden?


7
World of Warcraft wie?
Behacad

1
ja, es ist einheitlich zufällig, wie in der Frage angegeben (jede Zahl zwischen 1 und 100 einschließlich hat die gleiche Wahrscheinlichkeit.
Nzall

Gute Frage, aber das scheint mir ein schlechter Weg zu sein, einen Gewinner zu wählen. Listen Sie die Spieler einfach auf irgendeine Weise auf (Sie könnten sagen: "Namen alphabetisch" oder mischen und allen die Liste zeigen oder auf eine andere Weise sortieren) und wählen Sie eine Zufallszahl zwischen 1 und 25. Die Zahl, die dem Spieler entspricht, gewinnt.
Tim S.

2
Noobs, benutze DKP!
Davor

2
Vorschlag: Wenn wir eine Zufallsstichprobe aus U { 1 , , 100 } erhalten , müssen wir P ( X ( 24 ) < X ( 25 ) ) anhand dessen berechnen , was wir aus der Theorie der Ordnungsstatistik kennen. X1,,X25U{1,,100}P(X(24)<X(25))
Zen

Antworten:


25

Lassen

  • sei das obere Ende deines Bereichs, x = 100 in deinem Fall.xx=100
  • ist die Gesamtzahl der Ziehungen, n = 25 in Ihrem Fall.nn=25

Für eine beliebige Anzahl , die Anzahl von Sequenzen von n Zahlen mit jeder Zahl in der Sequenz y ist y n . Diese Sequenz, die Anzahl NO y ist s ( y - 1 ) n und die Zahl eines enthält , y ist n ( y - 1 ) , n - 1 . Daher ist die Anzahl der Sequenzen mit zwei oder mehr y s y n - ( y - 1 ) nyxnyyny(y-1)nyn(y-1)n-1y Die Gesamtzahl der Folgen von n Zahlen mit der höchsten Zahl y, die mindestens zwei y s enthält, ist x y = 1 ( y n - ( y - 1 ) n - n ( y - 1) ) n - 1 )

yn-(y-1)n-n(y-1)n-1
nyy
y=1x(yn-(y-1)n-n(y-1)n-1)=y=1xyn-y=1x(y-1)n-y=1xn(y-1)n-1=xn-ny=1x(y-1)n-1=xn-ny=1x-1yn-1

Die Gesamtzahl der Sequenzen ist einfach . Alle Sequenzen sind gleich wahrscheinlich und daher ist die Wahrscheinlichkeit x n - n y = x - 1 y = 1 y n - 1xn

xn-ny=1y=x-1yn-1xn

Mit mache ich die Wahrscheinlichkeit 0,120004212454.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

Dieses Programm ausgegeben

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

Ich habe mit Perl simuliert und eine sehr konsistente 0,005 erhalten. pastebin.com/gb7JMLt6
agweber

xnx=20,n=515600/160000=0,0975x,nund die Wahrscheinlichkeit aus der Formel I abgeleitet. Ich bin gespannt, woher die Meinungsverschiedenheiten zwischen unserem Code stammen.
TooTone

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

3

Ich würde in Betracht ziehen, zuerst die Wahrscheinlichkeit eines eindeutigen Gewinners zu ermitteln

x(251)(x1)2410025y1

Der Gewinner kann mit einer Zahl von 2 bis 100 gewinnen, die Gesamtwahrscheinlichkeit ist also

ich=210025(ich-1)2410025=25ich=199ich2410025=-14+25ich=1100ich2410025-14+25124+110024+1+1210024+242161002310025=0,88

10023

1-0,88=0,12


-3

p1-pp=1(1-1/100)(1-1/100)......(1-1/10)=(1-1/100)24P=1-p=1-(1-1/100)24=0,214


Bedeutet dies, dass die Wahrscheinlichkeit 21,4% beträgt? scheint ziemlich hoch, aber andererseits hat das Geburtstagsparadoxon eine ähnliche überraschende Antwort. Vielen Dank.
Nzall

6
-1 Wie es aussieht, ist diese Antwort nicht korrekt. Die richtige Antwort lieferte @TooTone.
COOLSerdash
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.