Frage

Ich bin Codierung ein Brettspiel, wo es eine Tüte möglich Stücke ist. In jeder Runde Spieler entfernen zufällig ausgewählte Stücke aus dem Beutel nach bestimmten Regeln.

Für meine Implementierung kann es einfacher sein, den Beutel zunächst in Pools aufzuteilen für einen oder mehrere Spieler. Diese Pools würden zufällig ausgewählt werden, aber jetzt andere Spieler aus verschiedenen Taschen Kommissionierung würden. Ist das anders?

Wenn ein Spieler Tasche lief, würde mehr zufällig in sie aus dem allgemeinen Vorrat gemischt werden.

War es hilfreich?

Lösung

Solange:

  • die Partition in "Pool" Taschen ist zufällig
  • die Zuordnung der Spieler zu einer bestimmten Pool Tasche ist zufällig
  • das Spiel ist, so dass die von den Spielern gezogen Gegenstände effektiv aus dem Beutel entnommen werden (nie zurück in dem Beutel oder eine andere Tasche, für die Dauer des aktuellen Spiels)
  • sind die Spieler nicht bewusst den Inhalt von jeder der Taschen

Die beiden Ansätze ( „Original“ mit einem großen gemeinsamen Tasche, „modifiziert“ mit einem Pool Beutel pro Spieler sind gleichwertig in Bezug auf Wahrscheinlichkeiten.

Es wird nur ein bisschen schwierig gegen Ende des Spiels, wenn einige Spieler Taschen leer sind. Der Schönste von 100% der Artikel noch im Spiel abholen zu lassen, daher sollten sie beide aus wählen, welcher Tasche sie holen und [blind, natürlich] aus der Tasche ein Element auswählen.

Dieses Problem veranschaulichen eine weitere interessante Eigenschaft von Wahrscheinlichkeiten, die ist, dass Wahrscheinlichkeiten auf die Menge an Wissen bezüglich einer über die Situation hat . Zum Beispiel kann auch das Spiel Host weiß, dass die „Pool“ Tasche sagen Spieler X enthält nicht zugewiesen jeder Brief sagen „A“ (Denken über Scrabble), aber solange keiner der Spieler weiß, dass dies (und so lange, wie die Trennwände in Pool Tasche war völlig zufällig), bleibt das Spiel fair und Spieler „X“ hat immer noch anzunehmen, dass sein / ihr wahrscheinlich ein „a“ das nächste Mal, wenn ein Brief gezeichnet des Schlagens wird, das gleiche wie wenn alle übrigen Buchstaben zur Verfügung standen, um ihn / sie.

Edit:
Nicht die mathematische Gültigkeit der Behauptung zu widerstehen, dass beiden Verfahren sind völlig gleichwertig, Wahrnehmung ist ein wichtiger Faktor in den Spielen, die eine Chance Komponente (insbesondere umfassen, wenn das Spiel auch ein enthält Geldkomponente). Um den Zorn der Spieler zu vermeiden, die diese Billigkeit nicht verstehen, Sie zu dem ursprünglichen Verfahren hängen bleiben ...

Andere Tipps

Je nach den Spielregeln, @mjv richtig ist, die anfängliche Zufallsteilung nicht die Wahrscheinlichkeiten nicht beeinflussen. Dies ist analog zu einem Spiel, in den n Spieler Karten wiederum von einer Seite nach unten Deck ziehen. Die anfängliche Shuffle des Decks ist die zufällige Einteilung in die „Taschen“ von Karten für jeden Spieler

Aber wenn Sie ersetzen die Einzelteile nach jeder Ziehung, es ist nicht egal, ob es eine Tasche oder viele ist. Mit einer Tasche ein bestimmtes Objekt wird schließlich von jedem Spieler mit der gleichen Wahrscheinlichkeit gezogen werden. Mit vielen Taschen, kann das Element nur durch den Spieler, deren Tasche wurde zunächst platziert gezogen werden.

Popping auf die Software-Ebene auf, wenn das Spiel für einen einzelnen Beutel ruft, würde ich empfehlen, es einfach so programmieren: Es sollte als n-Taschen nicht schwieriger sein, und Sie haben nicht das neue Spiel zu beweisen entspricht dem bisherigen.

Meine Intuition sagt mir, dass eine zufällige Sammlung von Dingen in kleinere zufällige Untergruppen Teilung würde ebenso zufällig bleibt ... ist egal, ob ein Spieler Picks aus einem großen Pool oder ein kleineren (das in Windungen, selbst fließt in die große)

Für ein Spiel, es ist genug, um zufälliger IMHO!

Je nachdem, wie entscheidend die Sicherheit ist, könnte es in Ordnung sein (wenn Geld im Spiel ist (Sie oder sie) tun das nicht). Ich bin mir nicht ganz sicher, es wäre weniger zufällig aus der Perspektive eines unwissenden Spielers.

a) Zählen Sie nicht auf sie unwissend, Ihr Programm geknackt werden könnte, und dann würden sie wissen, welche Stücke kommen

b) Es wäre sehr schwierig sein, die Taschen so zu füllen, dass Sie Schwachstellen nicht vorstellen. Zum Beispiel wollen wir die naive Algorithmus nehmen eine zufällig Kommissionierung und es in einem ersten Eimer setzen, nehmen Sie es aus, und tun dann das gleiche für den zweiten Eimer und so weiter. Sie gewährleistet, nur, dass, wenn N Stücke sind, der erste Spieler eine Wahrscheinlichkeit von 1 / N hatte ein gegebenes Stück des Aufnehmens, der zweite Spieler hatte einen 1 / (N-1), die dritte hatte 1 / (N-3) und bald. Die Spieler können dann analysieren, um die Stücke bereits gespielt, um die Wahrscheinlichkeiten, um herauszufinden, die anderen Spieler bestimmte Stücke halten.

I THINK der folgende Algorithmus könnte besser funktionieren, aber fast alle Menschen bekommen Wahrscheinlichkeit falsch sie das erste Mal mit einem neuen Algorithmus kommen. Verstehen nicht, diese, nur, dass es könnte , um die Sicherheitslücke deckt Ich sprach über:

  1. Erstellen Sie eine Liste von N bestellten Artikel und instanziiert P Spieler
  2. Mark 1 / P der Elemente zufällig (mit Ersatz) für jeden Spieler
  3. Tun Sie dies so oft, bis alle N Elemente gekennzeichnet sind und gibt es eine gleiche Anzahl der Elemente für jeden Spieler markiert (ANMERKUNG: viel länger dauern, als Sie auf N und P je leben können)
  4. Legen Sie die entsprechenden Positionen in den Eimer des Spielers und dem Zufallsprinzip neu anordnen (nicht verwenden einen Platz Swapping-Algorithmus)

Auch dann nach all dies, könnte man immer noch eine Anfälligkeit für jemanden, herauszufinden, was von einem Exploit in ihren Eimern ist. Stick mit einem kombinierten Pool, es immer noch heikel ist wirklich zufällig zu holen, aber es wird Ihr Leben leichter machen.

Edit: Ich weiß, dass der Ton Art abgehackt klingt. Ich enthalten meist alles, was fett für Menschen, die dies aus dem Zusammenhang lesen könnte und einige dieser Algorithmen versuchen. Ich wünsche Ihnen wirklich gut: -)

Edit 2: Bei näherer Betrachtung, ich denke, dass das Problem mit Kommissionierung reduzieren, könnte die Spieler abwechselnd in erster Linie zu haben. Wenn das in den Regeln ist schon könnte es keine Rolle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top