Card Removal Effects

    • Bobbs
      Bobbs
      Bronze
      Dabei seit: 02.01.2006 Beiträge: 4.264
      Hi,
      folgende Situation:
      Es gibt acht Spieler.
      Jeder von ihnen geht mit einer Range von 99+,AQ+(5.1%) allin.

      Wie wahrscheinlich ist es nun für Spieler 2,3,..,8, dass er eine Hand aus der Range erhält, falls alle Spieler vor ihm gefolded haben.

      Besten Dank,
      Bobbs
  • 13 Antworten
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      ist das nicht ziemlich komplex, weil ja auch karten weg geschmissen werden wie AJ die dann natürlich p(all-in) wegnehmen für nachkommende spieler.

      kenn mich so gar nicht aus mit card removal effects aber in matlab könnte man das bestimmt fein simulieren : )
    • SwissDave
      SwissDave
      Bronze
      Dabei seit: 12.02.2007 Beiträge: 637
      genau, es braucht bei jedem Fold eine ziemlich grosse Fallunterscheidung, wie die gefoldeten Karten die möglichen Kombinationen für den nachfolgenden Spieler beeinflussen. Das heisst es gibt einen Wahrscheinlichkeitsbaum mit ziemlich vielen Ästen auf jeder Stufe... und die müssen alle einzeln ausmultipliziert und dann zusammenaddiert werden. Es ist nicht unbedingt komplex, aber halt eine enorme Fleissarbeit. Und auch einem Programm wie Matlab ist das nicht so einfach beizubringen.
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      klar waer das relativ einfach. man simuliert einfach nur karten fuer alle spieler am tisch und summiert n: die anzahl spieler an position x hat n times die erforderlichen karten erhalten, wobei man die iteration stoppt wenn einer all in geht
      teilt das durch die gesamtzahl der simulationsdurchlaefe und schwups, isset da. nix mit baemchen pflanzen oder so

      das einzige was nen bissle arbeit ist, ist das erstellen der karten (suited) also vllt 1 bis 52 und dann die if condition zur abfrage obs pockets oder AQs sind irgendwie intelligent machen.
      Bsp: kreuz Ass = 1
      pik Ass = 2
      herz Ass = 3 ...

      den hoechsten wert an die erste position hauen.
      wenn dann die erste holekarte kreuzA ist (value 1) sollte die andere holekarte
      2 oder 3 oder 4 sein...
      vielleicht mach ich das gleich mal, aber ich muss erstmal was essen : )
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      ach ja, noch ne frage. also spieler 1 ist hero und haelt eine hand in range 99+, AQ+
      oder wieso nur wahrscheinlichkeiten fuer spieler 2-8???
    • Bobbs
      Bobbs
      Bronze
      Dabei seit: 02.01.2006 Beiträge: 4.264
      Die Wahrscheinlichkeit, dass Spieler 1 eine Hand aus der Range bekommt ist doch genau 5.1%, deshalb muss man das nicht berechnen.
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      also hab mir mal die arbeit gemacht. die card assignments sind jetz nicht mit nem "echten" randomgenerator gemacht worden. denke aber dafür müsste die std matlab rand function akzeptable sein. geht sich ja nicht darum den generator zu knacken

      ergebnisse:

      final =
      p(players 1 to 8):
      0.0511
      0.0515
      0.0521
      0.0524
      0.0527
      0.0532
      0.0537
      0.0541

      >> success

      success =

      wie oft all in # of trials
      511478 10000000
      488877 9488522
      469323 8999645
      447377 8530322
      425808 8082945
      407207 7657137
      389073 7249930
      371209 6860857


      code für matlab in der main fct
      players = 8;
      loops = 10000000;
      success = zeros(players,2); % players,1 = # hand in range, players,2 = # trials

      for i=1:loops
      cards = assigncards();
      position = findRange(cards);
      if (position == 0) % no one went all in, so all trials incremented
      for j=1:players
      success(j,2) = success(j,2) +1;
      end;
      else
      success(position,1) = success(position,1) + 1;
      for j=1:position % player at position went all in, so trials up tp position are incremented
      success(j,2) = success(j,2) +1;
      end;
      end;
      end;

      final = zeros(players,2);
      for i=1:players
      final(i,1) = success(i,1) / success(i,2); % amnount all in / amount trials
      end;
      final
    • hasufly
      hasufly
      Black
      Dabei seit: 01.12.2006 Beiträge: 7.370
      k vielen dank, dachte ehrlich gesagt die abweichung sei größer. aber das relativiert sich wohl dadurch dass die andern spieler auch genug outs wegwerfen die später noch verwendet werden könnten.
    • Bobbs
      Bobbs
      Bronze
      Dabei seit: 02.01.2006 Beiträge: 4.264
      Wow, das sieht sehr gut aus!
      Da muss ich glatt mal schauen, ob ich meine Matlab Stud.Version irgendwo finde. Ich hatte garnicht daran gedacht eine Simulation durchzuführen und wollte es eigentlich exakt berechnen.

      Wäre nett, wenn du noch die assigncards Funktion posten könntest, damit ich etwas rumsimulieren kann.
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      jo ich hab die 3 dateien mal auf rapidshare geuppt

      http://rapidshare.com/files/165333509/card_removal.rar.html

      in der cards_removal ist noch ne schleife fuer range increment drin... lass das jetzt auch mal auf größere ss laufen und poste dann das verhältnis von den differenzen der wahrscheinlichkeiten für vers ranges
    • Bobbs
      Bobbs
      Bronze
      Dabei seit: 02.01.2006 Beiträge: 4.264
      Super, danke!
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      ich hab auch mal die range erweiter und die differenz der wahrscheinlichkeiten von spieler 1 und 8 geplotted


      [URL=http://g.imageshack.us/img185/cardremova

      y-achse ist die differenz in %
      x-achse die range in %

      man muss nur dabei beachten, dass die erweiterung der range nur ueber schlechtere kicker zum Ass erfolgen, nicht über mehr pockets oder Kx ...
    • SwissDave
      SwissDave
      Bronze
      Dabei seit: 12.02.2007 Beiträge: 637
      Ich ging natürlich auch davon aus, dass man es exakt bestimmen will.
      So eine Simulation ist hübsch anzusehen und kann durchaus sinnvoll sein, wenn etwas zu komplex ist.
      Man muss aber die Resultate immer mit Vorsicht behandeln.

      Wenn man die Resultate von Timoae betrachtet, fällt nämlich auf, dass die Abstände zwischen den jeweiligen Zahlen ziemlich unnatürlich schwankend sind zwischen 0.003 und 0.006

      Tatsächlich ist die erste Zahl ja nicht 0.0511 sondern exakt 68/1326 ~= 0.05128205

      Ich habe mir mal die Mühe gemacht und den exakten Wert für Spieler 2 ausgerechnet:
      2 aus 2-8: 378 * 68 / ((1326 - 68) * 1225)
      92-98,T2-T8,J2-J8: 3 * 4 * 28 * 65 / (1256 * 1225)
      JT,J9,T9: 3 * 4 * 4 * 62 / (1256 * 1225)
      K9-KJ, Q9-QJ: 6 * 4 * 4 * 58 / (1256 * 1225)
      A9-AJ: 3 * 4 * 4 * 54 / (1256 * 1225)
      Q2-Q8, K2-K8: 2 * 4 * 28 * 61 / (1256 * 1225)
      KQ: 4 * 4 * 57 / (1256 * 1225)
      A2-A8: 4 * 28 * 57 / (1256 * 1225)
      Alles aufaddieren ergibt: 0.0516479

      Wie man sieht, sind es leider bereits 8 Äste in diesem Baum im ersten Schritt, nach x Schritten sind wir dann potenziell bei 8^x, wird also schon ziemlich kompliziert das Ganze, wenn man es exakt will. Deshalb ist die Simulation vielleicht doch besser, Ich fand allerdings die Abweichung zu 0.0515 doch interessant...

      Insgesamt stimmt die Grundaussage aber schon, dass die Wahrscheinlichkeit mit jedem Schritt geringfügig zunimmt. Ich denke das genügt ja ;)
    • Timoae
      Timoae
      Bronze
      Dabei seit: 18.09.2007 Beiträge: 223
      mhhhhkay, geb dir schon recht was du da sagts

      allerdings mit erhöhung der durchläufe kann man da der varianz den finger zeigen