10
votes

Cotes de dés: simuler une partie de craps

Mon frère a 21 ans dans quelques semaines et mes parents et je l'emmène à Las Vegas. Pour mon 21e, j'ai amené 200 $ à jouer à Vegas et rentrou à la maison avec environ 450 dollars, principalement de jouer du craps. Je prévois de redevoir 200 $ pour ce voyage et avant d'aller, je pensais que je dirais des simulations de craps pour voir si je peux encore doubler mon argent.

J'ai lu depuis plusieurs sources que la maison a le plus petit avantage de Craps lors du placement d'une ligne de passe avec des chances maximales. De ma mémoire, et comme interrogé par Wizard of Cotes , la plupart des casinos de la bande sont 3 -4-5 Cotes avec un minimum de 5 $. En tenant compte de cela, voici une simulation d'une session Craps (de 100 rouleaux de dés) dans PHP: P>

<?php

$stash = 200;
$bet = 5;

for($i=100; $i--;) {

    $dice1 = mt_rand(1, 6);
    $dice2 = mt_rand(1, 6);
    $total = $dice1 + $dice2;

    if(!$button) {
        if($total===7 || $total===11) {
            $stash += $bet;
        }
        elseif($total===2 || $total===3 || $total===12) {
            $stash -= $bet;
        }
        else {
            $button = $total;
            if($total===4 || $total===10) {
                $odds = $bet*3;
            }
            elseif($total===5 || $total===9) {
                $odds = $bet*4;
            }
            elseif($total===6 || $total===8) {
                $odds = $bet*5;
            }
        }
    }
    else {
        if($total===7) {
            $button = 0;
            $stash -= ($bet + $odds);
        }
        elseif($total===$button) {
            $button = 0;
            $stash += $bet;
            if($total===4 || $total===10) {
                $stash += $odds*2/1;
            }
            elseif($total===5 || $total===9) {
                $stash += $odds*3/2;
            }
            elseif($total===6 || $total===8) {
                $stash += $odds*6/5;
            }
        }
    }

    echo 'Stash: $'.$stash.'<br/>';

}

?>


0 commentaires

3 Réponses :


5
votes

Eh bien, juste à côté de la batte, je peux voir que vous avez une erreur dans la case Simple 7 ou 11 Win Win: Vous êtes censé gagner votre pari, pas deux fois votre pari.

EDIT: Je crois que le paiement de la mise à la fois des chances est à la mesure de la probabilité réelle. Vous êtes deux fois plus susceptibles de rouler 7 (perdre vos chances) que 10, vous devez donc être payé 2: 1 lorsque vous gagnez sur un 4 ou 10; et seulement payé 6: 5 lorsque vous gagnez sur 6 ou 8.


2 commentaires

J'ai modifié la source - comment ça se passe-t-il maintenant? Les gains de cotes ont-ils besoin d'ajuster ou de corriger la simulation?


@Kevin: Je pense que vous avez obtenu tous les paiements corrects maintenant, à ma compréhension du craps. Cependant, les réponses données par d'autres personnes contiennent des moyens d'améliorer et de développer votre simulation.



9
votes

Je ferais attention avec n'importe quel code de code écrit pour "prouver" que vous êtes plus susceptible de doubler votre argent au craps (ou à tout autre jeu de hasard) avant de partir en panne. Las Vegas est une ville tentaculaire dans le désert du Nevada témoigne de deux choses:

  1. finalement, la maison gagne toujours
  2. Les gens sont mauvais en maths

    Il n'y a pas de jeu de casino mettrait sur leur plancher qui n'utilise pas les deux règles. Si votre code n'est pas d'accord avec Vegas, je pose mon argent sur Vegas.

    Mise à jour:

    Voici quelques C ++ j'ai écrit sur votre code d'origine . Le problème initial que vous avez posté était si vous pouviez doubler votre argent avant de partir plus souvent que pas. J'ai suivi le code que j'ai écrit avec quelques résultats. xxx

    résultats: xxx


2 commentaires

Votre code ressemble à ce que je suis venu, sauf que vous devez prendre en compte le choix initial lors du calcul de vos chances. c'est à dire. Cotes = STD :: Min (Cash - Bet_k, bet_k * 3); au lieu de Cotes = STD :: Min (Cash, bet_k * 3);


Merci, mis à jour; Il est intéressant de noter que je n'ai pas vu que le changement n'a aucun effet sur les résultats. Cela ferait une attraction intéressante de Vegas: pari sur les chances et Vegas vous donne une mise au rendez-vous sur la maison!



4
votes

Vous ne vérifiez pas si vous avez assez de gauche dans la cachette pour placer votre pari de cotes désiré. En fait, vous ne vérifiez pas du tout la taille de votre cachette. Il est sans surprise que cette simulation sera capable de battre la maison plus souvent si vous êtes capable de parier, même si votre taille de cachette est négative.

Au fait, j'ai couru 50 000 itérations de votre simulation de 100 coupes de dés (avec ma modification de la mise maximale de réserve de réserve) et proposé avec les éléments suivants:

gagne: 23807

Pertes: 25465

poussez (vous partez avec 200 $): 728

avg. GAGNEMENTS: 109,07 $


2 commentaires

Une autre chose que je viens de réaliser, votre simulation jette les dés 100 fois et s'éloigne sans que l'argent soit laissé sur la table, de sorte que les gains AVG et le nombre de victoires devraient être un peu moins que cela.


Donc, j'ai dirigé ce script modifié (50 000 itérations) avec la cavation supplémentaire de «ne pas quitter de l'argent sur la table» dix fois et proposé les pourcentages de victoire suivants: 48,6%, 48,1%, 48,2%, 48,0%, 47,7%, 48,4 %, 48,0%, 48,2%, 48,2%, 47,7%. En bref: Non, vous ne pouvez pas battre Vegas. :)