Come vincere nel gioco sasso-carta-forbici? (implementando una strategia ottimale in Wolfram Mathematica). Come vincere sempre al gioco sasso, carta e forbici

Traduzione di un post di Jon Mcloone, Direttore del business internazionale e dello sviluppo strategico presso Wolfram Research. Post originale: Come vincere a Sasso-Carta-Forbice
Scarica il post come documento di Mathematica

Da un punto di vista matematico il gioco sasso-carta-forbici (vedi appendice 1 alla fine) non è particolarmente interessante. La strategia di equilibrio di Nash è molto semplice: scegli casualmente e con uguale probabilità tra tre opzioni e, dato un gran numero di partite, né tu né il tuo avversario potrete vincere. Tuttavia, quando si calcola la strategia utilizzando un computer, è ancora possibile battere una persona dopo un gran numero di giochi.

Mia figlia di nove anni mi ha mostrato un programma che ha creato utilizzando Scratch che ha vinto assolutamente ogni volta semplicemente tenendo traccia delle scelte che hai fatto prima di fare le tue! Ma ti presenterò una soluzione semplice che batte una persona con sasso-carta-forbici senza imbrogliare.

Poiché è impossibile sconfiggere qualcuno che fa sempre una scelta del tutto casuale, conteremo sul fatto che le persone non sono molto casuali. Se il computer riesce a notare lo schema che segui nei tuoi tentativi di essere casuale, sarà un passo avanti nel predire le tue azioni future.

Stavo pensando di creare un algoritmo come uno degli argomenti del nostro corso di statistica secondo il concetto di matematica basata sul computer. Ma il primo articolo in cui mi sono imbattuto nella mia ricerca di algoritmi predittivi esaminava la soluzione utilizzando un progetto complesso basato su distribuzioni di copule. Questa soluzione era difficile da comprendere per uno studente (e forse anche per me), quindi ho deciso di sviluppare una soluzione più semplice che potessi spiegare in termini semplici. E anche se è già stato sviluppato in precedenza, è molto più divertente creare le cose a modo tuo che trovarne un'implementazione già pronta.

Per cominciare, dobbiamo solo poter avviare il gioco. A quel tempo era già stata sviluppata ed era disponibile una demo che permetteva di giocare a sasso-carta-forbice, ma non era proprio quello di cui avevo bisogno, quindi ho scritto la mia versione. Questo punto non richiede molte spiegazioni:

Nella maggior parte dei casi, questo codice descrive l'interfaccia utente e le regole del gioco. L'intera strategia del giocatore computerizzato è contenuta in questa funzione:

Dove 1 corrisponde al sasso, 2 alla carta e 3 alle forbici. Questa è la soluzione ottimale. Non importa come giochi, vincerai tanti giochi quanto il computer e la tua percentuale di vincita si aggirerà intorno allo zero.

Quindi ora sarebbe interessante riscrivere la funzione scegliVai per fare un pronostico sulla tua scelta utilizzando i dati delle ultime partite memorizzati nella variabile storia. Il primo passo è analizzare le scelte fatte nelle ultime partite e trovare tutte le occorrenze di qualsiasi sequenza. Osservando cosa ha fatto una persona in ogni gioco successivo, possiamo rilevare un certo modello di comportamento.

Il primo argomento della funzione è la storia dei giochi passati. Ad esempio, nell'insieme di dati riportato di seguito, il computer (la seconda colonna è il secondo elemento di ciascuna sottolista) ha appena giocato una carta (il numero 2) contro una pietra giocata da un essere umano (il numero 1). Questo può essere visto dall'ultimo elemento dell'elenco. È anche chiaro che questa situazione si è già verificata due volte, ed entrambe le volte la mossa successiva della persona è stata ancora una volta una pietra.

Il secondo argomento è il numero degli ultimi elementi della cronologia che verranno utilizzati per la ricerca. In questo caso, il numero 1 viene passato come argomento alla funzione, che ricerca nei dati solo le occorrenze di (1,2). Se scegliamo 2, la funzione cercherà le occorrenze della sequenza (3,2), (1,2) e restituirà una lista vuota, poiché tale sequenza non è stata precedentemente incontrata.

Terzo argomento Tutto, indica che nelle sequenze richieste sia le mosse umane che quelle del computer devono coincidere. L'argomento può essere cambiato in 1 per guardare solo la storia delle mosse della persona (cioè assumendo che la scelta umana dipenda solo dalle sue mosse precedenti), o 2 per guardare solo la seconda colonna, cioè la storia delle mosse del computer (assumendo cioè che una persona risponda alle mosse precedenti del computer indipendentemente da quali mosse abbia fatto lui stesso e, quindi, indipendentemente dal fatto che abbia vinto o perso).

Ad esempio, in questo caso troviamo che la persona ha scelto la pietra, indipendentemente da ciò che ha scelto il computer negli stessi giochi.

Data la grande quantità di dati, possiamo solo accontentarci di un argomento Tutto, e il programma sarà in grado di decidere da solo quali mosse, quelle del computer o quelle della persona, sono più importanti. Ad esempio, se la cronologia delle mosse di un computer viene ignorata da un essere umano quando effettua una scelta, allora il set di dati ottenuto per una certa cronologia delle mosse del computer avrà la stessa distribuzione di qualsiasi altra cronologia delle mosse del computer, a condizione che ci siano dati sufficienti sui giochi precedenti. Cercando tra tutte le coppie di giochi, otteniamo lo stesso risultato che avremmo ottenuto se prima avessimo selezionato i dati dalla cronologia delle mosse del computer e poi avessimo utilizzato questo sottoinsieme per la funzione mostrata sopra. Lo stesso accadrà se conta solo la cronologia delle mosse del computer. Ma allo stesso tempo, effettuando una ricerca tenendo conto di entrambi questi presupposti separatamente, è possibile ottenere corrispondenze più accurate nella cronologia, e questo è più evidente nei casi in cui il set di dati sui giochi è inizialmente piccolo.

Quindi, da questi due test, possiamo scoprire che il primo dà una stima del 100% che la prossima scelta della persona sarà una pietra, e il secondo mostra che con una probabilità del 75% la persona sceglierà una pietra e con una probabilità del 25% probabilità - forbici.

E qui sono un po' bloccato nel risolvere il problema.

In questo caso le due previsioni sono almeno più o meno vicine nel risultato, anche se divergono nei valori numerici delle probabilità. Ma se stai effettuando una ricerca in tre "sezioni" di dati con una serie di lunghezze storiche diverse e i risultati della previsione non sono coerenti, come puoi combinarli?

Ho archiviato una nota su questo problema nella mia cartella "Scrivi un blog su questo" e me ne sono dimenticato fino a poche settimane fa, quando c'è stata una discussione su come coprire il concetto di "significatività statistica" in un corso di matematica basata sul computer.

Mi sono reso conto che la domanda non è come combinare le previsioni risultanti, ma come determinare quale delle previsioni è più significativa. Una delle previsioni potrebbe essere più significativa delle altre perché riflette una tendenza più forte o forse si basa su un set di dati più ampio. Questo non mi importava, quindi ho semplicemente utilizzato il valore p del test di significatività (con l'ipotesi nulla che entrambi i giocatori stiano giocando per caso) per classificare le previsioni risultanti.

Penso che dovrei ascoltare i nostri primo principio che il primo passo per risolvere qualsiasi problema matematico è “la corretta formulazione della domanda”.

Ora, se prendiamo l'ultimo risultato ottenuto, risulta che la migliore previsione è la pietra, che ha un valore p di 0,17. Ciò significa che esiste solo una probabilità pari a 0,17 che i dati utilizzati per una determinata previsione si discostino dalla distribuzione discreta uniforme ( Distribuzione uniforme discreta[(1,3)]), e più per caso che per errore sistematico, umano o di altro tipo, che potrebbe modificare la distribuzione.

Più piccolo è questo valore p, più possiamo essere sicuri di aver trovato un vero modello di comportamento. Quindi facciamo semplicemente previsioni per varie lunghezze storiche e sezioni di dati e selezioniamo la previsione con il valore p più piccolo.

E facciamo una scelta che batterà la scelta della persona.

Qui vedi il risultato. Puoi scaricarlo e provarlo tu stesso dal sito Web Wolfram Demonstrations.

Quando un programma ha troppo pochi dati, viene riprodotto in modo casuale, quindi inizi su un piano di parità. All'inizio, quando sta appena iniziando a imparare, prende delle decisioni stupide, così puoi andare avanti. Ma dopo 30-40 partite inizieranno ad arrivare pronostici davvero significativi e vedrai la tua percentuale di vincita andare nell'area negativa e rimanere lì.

Naturalmente, una soluzione del genere è valida solo contro i tentativi primitivi di apparire casuali. La sua prevedibilità lo rende suscettibile a possibili perdite rispetto a una strategia ben calcolata e pianificata. È estremamente interessante provare a sconfiggere questo programma usando l'intuizione. È possibile, ma se smetti di pensare o pensi troppo, presto rimarrai indietro. Naturalmente, il programma potrebbe farlo facilmente utilizzando lo stesso algoritmo per prevedere la prossima mossa del programma.

Questo approccio porta all’inizio di una sorta di “corsa agli armamenti”, una competizione per scrivere algoritmi che vinceranno sasso-carta-forbice contro l’algoritmo dell’avversario, e l’unico modo per fermarla è tornare alla strategia di equilibrio di Nash, facendo scelte attraverso InteroCasuale[(1,3)].

Appendice 1
Nel caso in cui non sai come giocare a questo gioco, le regole sono le seguenti: scegli sasso, forbice o carta usando uno dei tre gesti mostrati simultaneamente da te e dal tuo avversario. La roccia batte le forbici (le rende opache), le forbici battono la carta (la tagliano) e la carta batte la roccia (la avvolge). Il vincitore riceve un punto; in caso di parità entrambi i giocatori non ricevono punti.

Grazie per il tuo aiuto nella traduzione di questo post.

Non esiste persona che non abbia giocato al gioco “Sasso, carta, forbici”. Dopotutto, non solo può prendere tempo, ma anche risolvere, ad esempio, una controversia.

Nel frattempo, non molti sanno che questo gioco è nato in Cina e successivamente, nel XIX e XX secolo, ha guadagnato popolarità in molti paesi del mondo, inclusa la Russia. E all'inizio del 21 ° secolo apparvero i primi campionati di questo "sport" con montepremi significativi.

Per vincere questo gioco non è necessario essere un sensitivo: puoi leggere i pensieri del tuo avversario o programmare le sue azioni, devi solo seguire alcune regole.

1. Gli uomini tendono a lanciare per primi il “sasso” perché viene percepito come forza e determinazione. Pertanto, puoi sorprendere la metà forte dell'umanità a fare questo; vengono sorpresi a farlo abbastanza spesso. Usando questa funzione puoi vincere facilmente mostrando "carta". Ma ricorda che questo trucco non funzionerà con i giocatori esperti.

2. Se sei "fortunato" a giocare con un giocatore esperto, è improbabile che mostri la "pietra" per la prima volta: questo è troppo ovvio. Pertanto, le "forbici" sono un'opzione abbastanza ottimale.

3. Dì al tuo avversario cosa mostrerai e poi... mostra quello che hai detto. Perché? Finché non stai giocando con qualcuno che non è consapevole della tua sfrontatezza, puoi, rendendo note le tue intenzioni, ottenere un tiro favorevole. Ad esempio, se dici "roccia", il tuo avversario non getterà via la "carta", pensando che mostrerai "forbici". Questa mossa può portarti una vittoria o un pareggio.

4. Se il tuo avversario lancia le forbici due volte, la possibilità che le mostri una terza volta è molto piccola. Molto probabilmente getterà via la “carta” o la “pietra”. In questo caso sarebbe opportuno mostrare la “carta”.

5. Durante il secondo turno, i giocatori inesperti mostrano inconsciamente cosa avrebbe potuto sconfiggerli in passato. Ad esempio, se il tuo avversario perde con "carta", mostrerà "forbici", quindi la tua mossa sarà "pietra". Se l'avversario ha lanciato la “pietra” la prima volta, la seconda volta è consigliabile mostrare le “forbici”: molto probabilmente deciderà di buttare via la “carta”.

6. Ci sono situazioni in cui non sai cosa buttare via. In questo caso ti consiglio di mostrare la “carta”. Secondo le statistiche, le “forbici” vengono mostrate un po’ meno spesso di qualsiasi altra cosa. Tuttavia, non molto tempo fa, gli scienziati britannici hanno scoperto che la strategia più vincente nel gioco è mostrare le “forbici”. Il fatto è che molto spesso l'avversario si aspetta inconsciamente il gesto della "pietra", motivo per cui mostra la "carta".

Bel gioco!


Dio solo sa quante situazioni controverse durante l'infanzia sono state risolte giocando a "Sasso, carta, forbici". Perché ci sono i bambini, ci sono tanti ragazzi grandi che trovano una facile via d'uscita in pochi secondi e in un cartello scartato. Allora cosa si nasconde dietro il semplice lancio delle dita: il caso o una strategia collaudata? Gli scienziati conoscono fermamente la risposta e danno la loro ricetta vincente.

Proprio di recente, un team di ricercatori cinesi dell’Università di Zhejiang ha notificato al mondo gli audaci risultati dei loro test psicologici. Gli scienziati hanno condotto 5 cicli sperimentali dal dicembre 2010 al marzo di quest'anno. Ogni ciclo prevedeva 12 sessioni con 6 partecipanti. In totale, il numero totale di soggetti ha raggiunto 360 persone. Il rapporto tra i sessi era 217:143 con una preponderanza femminile (semplicemente le ragazze erano più attive nell'iscriversi). Uno studente o un dottorando può partecipare allo studio una sola volta.

Le persone erano nascoste l'una dall'altra, davanti agli schermi dei monitor. Ciò ha eliminato il contatto verbale e visivo. Ciascun partecipante ha trascorso da un'ora e mezza a due ore giocando a 300 giochi con un avversario casuale. L'incentivo per vincere era una piccola ricompensa monetaria per ogni round vinto. Ed ecco le conclusioni da questo...

Allora cosa devi sapere per vincere? Dopo aver osservato un numero enorme di "battaglie", gli scienziati hanno scoperto che un giocatore che ha sconfitto il suo avversario nel gioco in corso aveva maggiori probabilità di ripetere le sue azioni nel turno successivo e meno probabilità di cambiare qualcosa.

D'altra parte, se un giocatore perde due o più volte di seguito, smetterà di mostrare la mano cattiva e cercherà di rompere proprio il segno che ha permesso al suo avversario di batterlo.

Pertanto, se il giocatore A fosse in una serie di sconfitte e il giocatore B avesse appena gettato via le forbici, tagliando così la carta di A, allora A avrebbe probabilmente lanciato una pietra, che avrebbe avuto buone possibilità di vincere, poiché B probabilmente avrebbe attaccato la carta. stesse tattiche vincenti. La psicologia del comportamento è semplice: se vinci non cambi, se perdi cambi.

Perduto? Scarta il segno che batte l'ultimo segno vincente del tuo avversario.

Hai vinto? Non continuare a mostrare lo stesso segno, butta via invece l'ultima mano del tuo avversario perdente.

Non è ancora del tutto chiaro? Ecco alcune strategie vincenti che ti aiuteranno a rimanere invincibile:

Se hai vinto l'ultima partita...

Se hai perso l'ultima partita (e il tuo avversario non è a conoscenza di questa tecnica)...

  • ...dopo aver gettato via la pietra, passa alle forbici nel combattimento successivo
  • ...buttando via le forbici, passa alla carta nel prossimo combattimento
  • ...buttando via la carta, passa alla pietra nel prossimo combattimento

Se hai perso l’ultima partita (e il tuo avversario è a conoscenza di questa tecnica)…

  • ...butta via la pietra, vai sul foglio nel prossimo combattimento
  • ...buttando via le forbici, passa alla pietra nel prossimo combattimento
  • ...buttando via la carta, passa alle forbici nel prossimo combattimento

Puoi familiarizzare più in dettaglio con la metodologia di ricerca fornita al pubblico dagli scienziati cinesi. Naturalmente è scritto in inglese e contiene schemi e formule difficili da comprendere per chi è lontano dalla matematica.

E in conclusione, aggiungerò che la colpa per aver perso auto, case e mogli in “sasso, carta, forbici”, prima di tutto, dovrebbe essere attribuita alla propria passione, e non alle menti cinesi e all'autore di queste righe .

“Sasso, carta, forbici” è un gioco familiare a tutti fin dall'infanzia, che ha risolto anche le controversie maschili più gravi. Ho sempre pensato che questo gioco fosse basato solo sulla fortuna, ma questo è lontano dalla verità. Oggi "Così semplice!" ti svelerà alcuni piccoli segreti che ti permetteranno di vincere sempre a questo gioco. E poi viaggerai sul sedile anteriore e qualcun altro correrà a prendere la birra.

Il segreto per vincere Sasso, Carta, Forbici

Se hai già dimenticato le regole, lascia che te lo ricordi: la pietra rompe le forbici che tagliano la carta e la carta copre la pietra.

Un team di ricercatori cinesi dell'Università di Zhejiang ha condotto un numero enorme di esperimenti e osservazioni, i cui risultati ne hanno mostrato alcuni modelli: Un giocatore che sconfigge il suo avversario nella partita in corso molto probabilmente ripeterà le sue azioni nel turno successivo ed è improbabile che cambi qualcosa.

D'altra parte, se il giocatore perde due o più volte di seguito, non verrà più mostrato pessima combinazione e cercherà di infrangere proprio il segno che ha permesso al suo avversario di sconfiggerlo.

Sulla base di ciò possiamo ricavare la seguente strategia vincente:

  • Se perdi, lancia il segno che batte l'ultimo segno vincente del tuo avversario.
  • Se vinci, non continuare a mostrare lo stesso segno, butta invece l'ultima combinazione del tuo avversario perdente.

Alcuni modelli più importanti

  • Molto spesso, il sesso più forte usa prima la pietra, quindi se il tuo avversario è un uomo, prova a lanciare la carta.
  • Se stai gareggiando con un giocatore esperto, c'è un'alta probabilità che provi a giocare sulla tua ingenuità e lanci la carta. Usa le forbici.
  • Ricorda che se il tuo avversario ha già lanciato la pietra due volte di seguito, quella persona odia essere prevedibile e nella maggior parte dei casi utilizzerà le forbici. Lancia una pietra.
  • Guarda le dita del tuo avversario. I più piccoli movimenti ti diranno quale mossa utilizzerà il tuo avversario. Tutte le dita sono tese: pietra. Tutte le dita sono rilassate: carta. Solo due dita sono tese: le forbici.
  • La carta viene utilizzata meno spesso nel gioco, nel 29,6% dei casi. Le forbici vengono utilizzate più spesso - 35%. E ancora più spesso pietra: 35,4%. Usa l'effetto sorpresa.

Racconta al tuo amico questi piccoli trucchi, sarà assolutamente felice di vincere sempre le discussioni con i suoi compagni di classe!


Siamo abituati a pensare che il buon vecchio gioco “Sasso, Carta, Forbici” sia basato sulla pura fortuna (o caso). Ma se così fosse, giocanon sarebbe così interessante.

Corruption.Sport con un collegamento a Bright Side ti svela diversi segreti, usando i quali puoi sempre vincere questa battaglia. E poi viaggerai sul sedile anteriore e qualcun altro correrà a prendere la birra.

Innanzitutto, iniziamo con le basi. Come probabilmente saprai, la pietra rompe le forbici che tagliano la carta e la carta copre la pietra.

Dopo aver osservato un gran numero di “battaglie” di questo tipo, un team di ricercatori cinesi dell’Università di Zhejiang ha scoperto che un giocatore che batte il suo avversario nel gioco in corso è più probabile che ripeta le sue azioni nel turno successivo, ed è meno probabile che cambi qualcosa.

D'altra parte, se un giocatore perde due o più volte di seguito, smetterà di mostrare la combinazione non riuscita e cercherà di infrangere proprio il segno che ha permesso al suo avversario di sconfiggerlo.

In base a questo, la vincita strategia:

  • Perduto? Scarta il segno che batte l'ultimo segno vincente del tuo avversario.
  • Hai vinto? Non continuare a mostrare lo stesso segno, butta via invece l'ultima mano del tuo avversario perdente.

E qualche altro consiglio:

  • Spesso gli uomini sono i primi a lanciare la pietra. Se tu giocando contro un uomo, prova la carta.
  • I giocatori esperti proveranno a giocare sulla tua ingenuità e a lanciare la carta. Usa le forbici.
  • Quando vedi che il tuo avversario ha già lanciato la pietra due volte, sappi che la persona odia essere prevedibile e nella maggior parte dei casi usa le forbici. Usa la pietra.
  • Guarda le dita del tuo avversario. I più piccoli movimenti ti diranno quale mossa utilizzerà il tuo avversario. Tutte le dita sono tese: pietra. Tutte le dita sono rilassate: carta. Solo due dita sono tese: le forbici.
  • La carta viene utilizzata meno spesso nel gioco, nel 29,6% dei casi. Le forbici vengono utilizzate più spesso - 35%. E un po' più spesso è la pietra: 35,4%. Usa l'effetto sorpresa.