mathematica中的代码有什么问题

问题描述 投票:1回答:1

假设您使用五张纸牌玩扑克游戏的变体,而该游戏使用的是一副普通纸牌。所考虑的子集是来自一副牌的7、8、9、10,J,Q,K,A卡,总共32张。允许A-7-8-9-10以低直度或平直度冲洗。使用普查方法计算后手的确切概率。

  • 一对
  • 两对
  • 三种
  • 满屋
  • 冲洗
  • 四种
  • 同花顺

将上述变种扑克游戏的概率与具有标准52张卡组的普通扑克游戏的概率进行比较和讨论。注意:如果给定的一手牌包含不同的手牌,则仅考虑一只(最高级别)]

我的解决方法是:

Any hand

In[172]:= 

In[263]:= deck = Range[7, 13]

Out[263]= {7, 8, 9, 10, 11, 12, 13}

Subsets[{7, 8, 9, 10, A, J, Q, K}, {5}]


Out[41]= {{7, 8, 9, 10, A}, {7, 8, 9, 10, J}, {7, 8, 9, 10, Q}, {7, 8, 9, 10, K}, {7, 
  8, 9, A, J}, {7, 8, 9, A, Q}, {7, 8, 9, A, K}, {7, 8, 9, J, Q}, {7, 8, 9, J,
   K}, {7, 8, 9, Q, K}, {7, 8, 10, A, J}, {7, 8, 10, A, Q}, {7, 8, 10, A, 
  K}, {7, 8, 10, J, Q}, {7, 8, 10, J, K}, {7, 8, 10, Q, K}, {7, 8, A, J, 
  Q}, {7, 8, A, J, K}, {7, 8, A, Q, K}, {7, 8, J, Q, K}, {7, 9, 10, A, J}, {7,
   9, 10, A, Q}, {7, 9, 10, A, K}, {7, 9, 10, J, Q}, {7, 9, 10, J, K}, {7, 9, 
  10, Q, K}, {7, 9, A, J, Q}, {7, 9, A, J, K}, {7, 9, A, Q, K}, {7, 9, J, Q, 
  K}, {7, 10, A, J, Q}, {7, 10, A, J, K}, {7, 10, A, Q, K}, {7, 10, J, Q, 
  K}, {7, A, J, Q, K}, {8, 9, 10, A, J}, {8, 9, 10, A, Q}, {8, 9, 10, A, 
  K}, {8, 9, 10, J, Q}, {8, 9, 10, J, K}, {8, 9, 10, Q, K}, {8, 9, A, J, 
  Q}, {8, 9, A, J, K}, {8, 9, A, Q, K}, {8, 9, J, Q, K}, {8, 10, A, J, Q}, {8,
   10, A, J, K}, {8, 10, A, Q, K}, {8, 10, J, Q, K}, {8, A, J, Q, K}, {9, 10, 
  A, J, Q}, {9, 10, A, J, K}, {9, 10, A, Q, K}, {9, 10, J, Q, K}, {9, A, J, Q,
   K}, {10, A, J, Q, K}}

Length[Subsets[{7, 8, 9, 10, A, J, Q, K}, {5}]]



In[259]:= Subsets[{A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K}, {5}]


In[260]:= Length[Subsets[{A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K}, {5}]]

Out[260]= 1287

One pair:

32kort:

In[135]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
onePairQ32[{___, x_, x_, ___}] := True;
onePairQ32[{___, x_, x_, x_, ___}] := False;
onePairQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
onePairQ32[{___}] := False;
Count[hands, _?onePairQ32]

Out[141]= 107520

52kort:



In[128]:= 
deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
onePairQ52[{___, x_, x_, ___}] := True;
onePairQ52[{___, x_, x_, x_, ___}] := False;
onePairQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
onePairQ52[{___}] := False;
Count[hands, _?onePairQ52]

Out[134]= 1098240



Two pairs:

32kort:

In[8]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
TwoPairQ32[{___, x_, x_, ___}] := False;
TwoPairQ32[{___, x_, x_, x_, ___}] := False;
TwoPairQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := True;
TwoPairQ32[{___}] := False;
Count[hands, _?TwoPairQ32]

Out[14]= 24192




52kort:

In[15]:= deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
TwoPairQ52[{___, x_, x_, ___}] := False;
TwoPairQ52[{___, x_, x_, x_, ___}] := False;
TwoPairQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := True;
TwoPairQ52[{___}] := False;
Count[hands, _?TwoPairQ52]

Out[21]= 123552



Three of a kind:

32kort:

In[22]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
ThreeOfKindQ32[{___, x_, x_, ___}] := False;
ThreeOfKindQ32[{___, x_, x_, x_, ___}] := True;
ThreeOfKindQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
ThreeOfKindQ32[{___}] := False;
Count[hands, _?ThreeOfKindQ32]

Out[28]= 12320

52kort:



In[142]:= deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
ThreeOfKindQ52[{___, x_, x_, ___}] := False;
ThreeOfKindQ52[{___, x_, x_, x_, ___}] := True;
ThreeOfKindQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
ThreeOfKindQ52[{___}] := False;
Count[hands, _?ThreeOfKindQ52]

Out[148]= 59280

pairQ[{x_, x_, y_, y_} /; x != y] := False; (* two pairs *)
pairQ[{___, x_, x_, x_, ___}] := False; (* three of a kind *)
pairQ[{___, x_, x_, ___}] := True; (* a pair *)
pairQ[{___}] := False (* else *)



Four of a kind:

32kort:



In[36]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
FourOfKindQ32[{___, x_, x_, ___}] := False;
FourOfKindQ32[{___, x_, x_, x_, ___}] := False;
FourOfKindQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
FourOfKindQ32[{___}] := False;
FourOfKindQ32[{___, x_, x_, x_, x_, ___}] := True;
Count[hands, _?FourOfKindQ32]

Out[43]= 224

52kort:

In[44]:= deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
FourOfKindQ52[{___, x_, x_, ___}] := False;
FourOfKindQ52[{___, x_, x_, x_, ___}] := False;
FourOfKindQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
FourOfKindQ52[{___}] := False;
FourOfKindQ52[{___, x_, x_, x_, x_, ___}] := True;
Count[hands, _?FourOfKindQ52]

Out[51]= 624



Full house:

32kort:

In[98]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
FullhouseQ32[{___, x_, x_, ___}] := False;
FullhouseQ32[{___, x_, x_, x_, ___}] := False;
FullhouseQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
FullhouseQ32[{___}] := False;
FullhouseQ32[{x_, x_, x_, y_, y_} /; x != y] := True;
Count[hands, _?FullhouseQ32]


Out[105]= 672

52kort:

In[157]:= deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
FullhouseQ52[{___, x_, x_, ___}] := False;
FullhouseQ52[{___, x_, x_, x_, ___}] := False;
FullhouseQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
FullhouseQ52[{___}] := False;
FullhouseQ52[{x_, x_, y_, y_, y_} /; x != y] := True;
Count[hands, _?FullhouseQ52]




Out[164]= 1872



Nothing:

32kort:



In[75]:= deck = Sort[Join[Range[7, 14], Range[7, 14], Range[7, 14], Range[7, 14]]];
hands = Subsets[deck, {5}];
NothingQ32[{___, x_, x_, ___}] := False;
NothingQ32[{___, x_, x_, x_, ___}] := False;
NothingQ32[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
NothingQ32[{___}] := True;
Count[hands, _?NothingQ32]

Out[81]= 57344

52kort:

In[165]:= deck = Sort[Join[Range[1, 13], Range[1, 13], Range[1, 13], Range[1, 13]]];
hands = Subsets[deck, {5}];
NothingQ52[{___, x_, x_, ___}] := False;
NothingQ52[{___, x_, x_, x_, ___}] := False;
NothingQ52[{___, x_, x_, ___, y_, y_, ___} /; x != y] := False;
NothingQ52[{___}] := True;
Count[hands, _?NothingQ52]

Out[171]= 1317888

我的值有误,但我不知道我的问题是什么

wolfram-mathematica
1个回答
0
投票

您的三只手包括四只手。

示例:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.