日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...

發布時間:2023/12/10 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

德州撲克中比較重要的一個算法就是計算牌面的得分,不僅僅關乎概率計算的結果,同時也需要很高的性能。蒙特卡洛算法計算的次數越多結果越準確,因此算法的性能至關重要。下面是一個高性能的牌面java計算算法。

參數介紹:

1)cards 需要計算分值的牌

2) nCards 需要計算牌的張數public?static?int?evaluate(long?cards,?int?nCards)?{

int?retval?=?0,?four_mask,?three_mask,?two_mask;

//本函數支持1-7張牌的計算

//按照牌色分開

int?sc?=?(int)?((cards?>>?(CLUB_OFFSET))?&?0x1fffL);

int?sd?=?(int)?((cards?>>?(DIAMOND_OFFSET))?&?0x1fffL);

int?sh?=?(int)?((cards?>>?(HEART_OFFSET))?&?0x1fffL);

int?ss?=?(int)?((cards?>>?(SPADE_OFFSET))?&?0x1fffL);

int?ranks?=?sc?|?sd?|?sh?|?ss;

int?n_ranks?=?nBitsTable[ranks];

int?n_dups?=?((int)?(nCards?-?n_ranks));

//檢查順子、同花、同花順并返回最佳牌面得分

if?(n_ranks?>=?5)?{

if?(nBitsTable[ss]?>=?5)?{

if?(straightTable[ss]?!=?0)

return?HANDTYPE_VALUE_STRAIGHTFLUSH?+?(int)?(straightTable[ss]?<

else

retval?=?HANDTYPE_VALUE_FLUSH?+?topFiveCardsTable[ss];

}?else?if?(nBitsTable[sc]?>=?5)?{

if?(straightTable[sc]?!=?0)

return?HANDTYPE_VALUE_STRAIGHTFLUSH?+?(int)?(straightTable[sc]?<

else

retval?=?HANDTYPE_VALUE_FLUSH?+?topFiveCardsTable[sc];

}?else?if?(nBitsTable[sd]?>=?5)?{

if?(straightTable[sd]?!=?0)

return?HANDTYPE_VALUE_STRAIGHTFLUSH?+?(int)?(straightTable[sd]?<

else

retval?=?HANDTYPE_VALUE_FLUSH?+?topFiveCardsTable[sd];

}?else?if?(nBitsTable[sh]?>=?5)?{

if?(straightTable[sh]?!=?0)

return?HANDTYPE_VALUE_STRAIGHTFLUSH?+?(int)?(straightTable[sh]?<

else

retval?=?HANDTYPE_VALUE_FLUSH?+?topFiveCardsTable[sh];

}?else?{

int?st?=?straightTable[ranks];

if?(st?!=?0)

retval?=?HANDTYPE_VALUE_STRAIGHT?+?(st?<

}

//如果沒有更好的牌(如:金剛、葫蘆)直接返回得分

if?(retval?!=?0?&&?n_dups?

return?retval;

}

//繼續檢查其他牌型

switch?(n_dups)?{?//相同牌的數量

case?0:

//高牌

return?HANDTYPE_VALUE_HIGHCARD?+?topFiveCardsTable[ranks];

case?1:?{

//一對

int?t,?kickers;

two_mask?=?ranks?^?(sc?^?sd?^?sh?^?ss);

retval?=?(int)?(HANDTYPE_VALUE_PAIR?+?(topCardTable[two_mask]?<

t?=?ranks?^?two_mask;

//計算對牌的分數

kickers?=?(topFiveCardsTable[t]?>>?CARD_WIDTH)?&?~FIFTH_CARD_MASK;

retval?+=?kickers;

return?retval;

}

case?2:

//?2對或者三條

two_mask?=?ranks?^?(sc?^?sd?^?sh?^?ss);

if?(two_mask?!=?0)?{?//2對

int?t?=?ranks?^?two_mask;

retval?=?(int)?(HANDTYPE_VALUE_TWOPAIR

+?(topFiveCardsTable[two_mask]?&?(TOP_CARD_MASK?|?SECOND_CARD_MASK))?+?(topCardTable[t]?<

return?retval;

}?else?{?//三條

int?t,?second;

three_mask?=?((sc?&?sd)?|?(sh?&?ss))?&?((sc?&?sh)?|?(sd?&?ss));

retval?=?(int)?(HANDTYPE_VALUE_TRIPS?+?(topCardTable[three_mask]?<

t?=?ranks?^?three_mask;?/**?Only?one?bit?set?in?three_mask?*/

second?=?topCardTable[t];

retval?+=?(second?<

t?^=?(1?<

retval?+=?(int)?(topCardTable[t]?<

return?retval;

}

default:?//可能是葫蘆、金剛、順子、同花、或者2對

four_mask?=?sh?&?sd?&?sc?&?ss;

if?(four_mask?!=?0)?{?//金剛

int?tc?=?topCardTable[four_mask];

retval?=?(int)?(HANDTYPE_VALUE_FOUR_OF_A_KIND?+?(tc?<

^?(1?<

return?retval;

}

/**

*?Technically,?three_mask?as?defined?below?is?really?the?set?of?bits?which?are?set?in?three?or?four?of?the

*?suits,?but?since?we've?already?eliminated?quads,?this?is?OK

*/

/**

*?Similarly,?two_mask?is?really?two_or_four_mask,?but?since?we've?already?eliminated?quads,?we?can?use?this

*?shortcut

*/

two_mask?=?ranks?^?(sc?^?sd?^?sh?^?ss);

if?(nBitsTable[two_mask]?!=?n_dups)?{

//葫蘆

int?tc,?t;

three_mask?=?((sc?&?sd)?|?(sh?&?ss))?&?((sc?&?sh)?|?(sd?&?ss));

retval?=?HANDTYPE_VALUE_FULLHOUSE;

tc?=?topCardTable[three_mask];

retval?+=?(tc?<

t?=?(two_mask?|?three_mask)?^?(1?<

retval?+=?(int)?(topCardTable[t]?<

return?retval;

}

if?(retval?!=?0)?//?順子或同花

return?retval;

else?{

//?2對

int?top,?second;

retval?=?HANDTYPE_VALUE_TWOPAIR;

top?=?topCardTable[two_mask];

retval?+=?(top?<

second?=?topCardTable[two_mask?^?(1?<

retval?+=?(second?<

retval?+=?(int)?((topCardTable[ranks?^?(1?<

return?retval;

}

}

}

總結

以上是生活随笔為你收集整理的java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人第四色 | 一女双乳被两男吸视频 | 日韩欧美一本 | 欧洲成人在线 | 精精国产xxxx视频在线播放 | 日本高清不卡在线观看 | 日本一区不卡在线观看 | 毛片看看 | 久久久久无码精品 | 日本少妇xxxx软件 | 国产一区二区小视频 | 欧美日韩精品久久久 | 一级视频在线 | 国产粉嫩av | 麻豆传媒在线观看 | 成人无码久久久久毛片 | 色综合九九| 狠狠干狠狠操 | 日韩一级视频在线观看 | 国产午夜精品久久久 | 久久亚洲AV成人无码一二三 | 国产区91 | 狠狠干in | 久久久久久黄色片 | 久久手机看片 | 日韩欧美性视频 | 九色91porny| 91精品视频一区 | 激情亚洲网| 国产毛片儿 | 亚洲第一成肉网 | 欧洲精品二区 | 日本学生初尝黑人巨免费视频 | 性一交一乱一色一免费无遮挡 | 国产精品永久在线观看 | 久久久精品人妻一区二区三区 | 五月天久久婷婷 | 欧美精品免费一区二区 | 国产一区精品无码 | 懂色av一区 | 女婴高潮h啪啪 | 免费网站污| 人人插人人搞 | 欧美精品韩国精品 | 成人午夜影视 | 国产福利片在线观看 | 亚洲淫欲| np视频| 亚洲av片在线观看 | 丰满圆润老女人hd | 69精品无码成人久久久久久 | 性歌舞团一区二区三区视频 | 91视频免费在线 | 免费福利视频在线观看 | 在线免费观看av网址 | 女人洗澡一级特黄毛片 | 免费国产 | 午夜久久| 男插女视频在线观看 | 花房姑娘免费观看全集 | 九九精品在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 日韩av免费 | 亚洲大片 | 日本香蕉视频 | 三级网站| 熟女高潮一区二区三区视频 | 人妻av一区二区 | 日韩在线视频在线观看 | 亚洲国产精品无码久久久 | 久色88 | 亚洲福利视频网站 | 亚洲精品大全 | 国产女同91疯狂高潮互磨 | 黄色大片91| 亚洲AV不卡无码一区二区三区 | 国产视频不卡 | 欧美精品在线免费 | 999精品在线观看 | 美女主播福利视频 | 生活片一级片 | 91啦丨九色丨刺激 | 在线看视频 | 成人99| 黄色网页在线播放 | 亚洲国产精品久久人人爱 | 午夜影院视频 | 午夜影院男女 | 丨国产丨调教丨91丨 | 久久你懂的 | 精品人妻视频在线 | 91青青草| 黑人操中国女人视频 | 三级视频在线观看 | 婷婷久久网 | 亚洲国产中文字幕在线观看 | 日本在线播放一区 | 亚洲色图制服丝袜 | 超碰网址|