小编dev*_*lle的帖子

计算扑克股票的蒙特卡罗方法

我开始自己学习C语言,并决定建立一个计算扑克股票的程序.我正在尝试用蒙特卡洛来计算资产,但我得到了错误的结果.

所以这是一个例子:我拿着JsTs(黑桃杰克和黑桃10).我有两个对手,我正在分配特定的手牌范围.第一个对手只玩AA(任何Ace-Ace口袋,总共6个不同的组合),第二个玩KK +(任何Ace-Ace或King-King口袋).因此,计算过程首先从对手范围中随机选择一个范围(对于对手1,这总​​是AA).然后我确定该范围内的不同组合(Ah Ac,Ah Ad,Ah As ...等)并随机选择该范围内的一个组合.所以我为这两个对手做了这个.然后我随机选择五张棋牌并评估玩家手牌和对手牌.然后我看看我是赢了还是打成平手并保持结果.

所以我这样做了1000万次,我的资产达到了20.5%,但它应该是19.1%.这是我的代码的main()函数:

int main()
{
randctx rctx;
Deck[4][13];
randinit(&rctx, TRUE);
numberOfOpponents = 2;

//opponent ranges selected
rangeIsSelected[0][0]= 1;
rangeIsSelected[1][0]= 1;
rangeIsSelected[1][14]= 1;

//player cards
Player_Card_Flush[0] = 0;
Player_Card_Rank[0] = 8;
Player_Card_Flush[1] = 0;
Player_Card_Rank[1] = 9;

//insert player cards to dealt cards
Deck[Player_Card_Flush[0]][Player_Card_Rank[0]] = 1;
Deck[Player_Card_Flush[1]][Player_Card_Rank[1]] = 1;

checkForErrors(0);

if (impossibleError==1) {
    printf("Impossible to calculate equity");
    return;
}

gamesSimulated = 0;
totalTies = 0;
totalWins = 0;
int opponentToBeDealt = 0;

//let's see what …
Run Code Online (Sandbox Code Playgroud)

c random poker montecarlo

5
推荐指数
1
解决办法
2020
查看次数

标签 统计

c ×1

montecarlo ×1

poker ×1

random ×1