扑克栏图,概率

7次观看(最近30天)
你好。
我试图提出一个程序,以显示对扑克的概率/twopairs/twopairs/the of and ost et eft ...我想放在手中,并且该程序将显示我将得到多少次对/twopairs/三...在条形图或直方图中。
所有帮助都得到赞赏。

接受的答案

乔纳森·莱萨奇(Jonathan Lesage)
编辑:乔纳森·莱萨奇(Jonathan Lesage) 2013年10月20日
可以肯定的是一个有趣的问题,因为您可以通过许多方法来解决此问题。如果您使用MATLAB或编码相对较新,那么这是一个很好的问题,您可以解决概率和编程!希望我提供的代码和讨论可以帮助您开始自己的项目!
也许计算复杂系统概率的最直接方法(其中之一)是使用 蒙特卡洛法 。有效地,您编写了一些模拟扑克手的代码,然后运行数千次的代码。您可以通过这种方式计算事件的概率。
由于我不确定您有兴趣模拟的扑克格式,因此我会给您留下细微差别。我所做的是编码 非常 简单的蒙特卡洛扑克模拟器。在代码中,我只计算对,三个和四个。我也只是在寻找直接处理这些双手的概率。换句话说,我不允许抽奖。我们有效地交给了一千人,看看某些扑克手的频率是出现的频率。然后,我们可以使用该条形图上绘制概率 酒吧 功能。
确实,此代码中唯一的技巧是使用 兰德珀 功能“洗牌”甲板和 Histc 功能来计算手。希望这有助于您开始!
%蒙特卡洛生成扑克手的概率
%简单的示例,没有西装,一笔交易五张卡
% 画。仅查看对,三个和四个。
%在甲板上生成所有卡片
Onesuit = 1:13;
甲板= repmat(Onesuit,1,4);
numcards = numel(deck);
%运行蒙特卡洛模拟
%有效地玩大量手以确定概率
数字= 1000;
numPlayers = 4;
numcardsdealt = 5;
%创建矩阵以存储对等。对于每个玩家
%三行,因为此代码仅计数对,三个范围,三个。
%和四种。
handstotal =零(3,numplayers);
为了i = 1:数字,
%随机化卡向量,“洗牌甲板”
shuffleindex = randperm(numcards);
甲板=甲板(shuffleindex);
%交易双手(5张卡片)
DealCards = DeckShuffled(1:numPlayers*numcardsdealt);
DealCards = reshape(DealCards,NumPlayers,NumCardsDealt);
%计算每只手的卡片
CardCount = Histc(DealCards',Onesuit);
%计数单例,对等。消除单例,没有卡数
HandCount = Histc(CardCount,0:4);
handcount = handcount(3:end,:);
%从这笔交易中添加计数到总体计数
handstotal = Handstotal + HandCount;
结尾
绘图结果%
数字;
子图(2,1,1)
bar(Handstotal./numsimulations);
网格;
标题(“每个播放器的概率”);
ylabel(“概率”
set(GCA,'xtick',1:3,'Xticklabel',{'一对',,,,“三个”,,,,...
“四个”});
子图(2,1,2)
bar(sum(handstotal,2)./(numSimulass*numPlayers));
网格;
标题(“总体概率”);
ylabel('可能性'
set(GCA,'xtick',1:3,'Xticklabel',{'一对',,,,“三个”,,,,...
“四个”});
另外,另一项建议。您可以随时检查是否有人在 文件交换 呢以下提交可能会达到您的利息:

更多答案(0)

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!