2014-09-01 61 views
1

我應該使用Matlab來確定一張5張牌撲克中一種4的概率。 我明白我必須做的第一件事就是生成一張牌並洗牌,然後抽出5張牌。 我很難確定手是否是4種。 我寫下了下面的代碼,它可以用來洗牌和繪製5張牌。 我試圖用if語句來判斷手是否是4類,但它不起作用。我在if語句背後的推理是,如果我已經有了一個已分類的向量,唯一的兩種可能性是前4個或後4個數字應該相等。5張牌撲克手中確定一種4的概率Matlab

Ex。 AAAA_

_2222

如何確定一種4任何意見將是非常有益的:)

DECK = ['AH';'2H';'3H';'4H';'5H';'6H';'7H';'8H';'9H';'TH';'JH';'QH';'KH'; ... 
    'AS';'2S';'3S';'4S';'5S';'6S';'7S';'8S';'9S';'TS';'JS';'QS';'KS'; ... 
    'AD';'2D';'3D';'4D';'5D';'6D';'7D';'8D';'9D';'TD';'JD';'QD';'KD'; ... 
    'AC';'2C';'3C';'4C';'5C';'6C';'7C';'8C';'9C';'TC';'JC';'QC';'KC']; 
%deck of 52 cards 
total_runs=10000; 
n=0; 
for i=1:total_runs 
    index=randperm(52); 
    shuffle=DECK(index); 
%shuffles the 52 columns 
    b=shuffle(1:5); 
%chooses the first 5 cards 
d=sort(b); 

if d(1)==d(2)==d(3)==d(4)||d(2)==d(3)==d(4)==d(5) 
    %attempt to determine 4 of a kind 
    disp(d); 
    n=n+1; 
end 
end 
prob=n/total_runs 
+0

只是一個風格問題,但幾乎每個人將以上(或後)評論他們所描述的事情。您目前的評論可能會誤導快速讀者。 – 2014-09-01 08:28:06

回答

1

你不能像這樣進行連鎖比較。您寫道:

d(1)==d(2)==d(3)==d(4) 

d(1) == d(2)計算結果爲邏輯,無論是truefalse。這不會等於d(3)

因爲他們排序,你可以測試

d(1)==d(4) || d(2)==d(5) 
+0

哇我想我每天都會學到新東西,謝謝!你是一位優秀的老師:) – azumakazuma 2014-09-01 04:13:40

+0

@azumakazuma一般來說,測試多個值的相等性可以這樣完成:'isequal(d(1),d(2),d(3),d(4))' – 2014-09-01 08:24:01

-1

感謝張貼一個有趣的問題。

我有點發現混合字符串和整數有點尷尬,在MATLAB中使用。 但是這個問題是可以解決的,如果我們只考慮整數從1到52

% 1 through 52 
% ['AH';'2H';'3H';'4H';'5H';'6H';'7H';'8H';'9H';'TH';'JH';'QH';'KH'; ... 
%  'AS';'2S';'3S';'4S';'5S';'6S';'7S';'8S';'9S';'TS';'JS';'QS';'KS'; ... 
%  'AD';'2D';'3D';'4D';'5D';'6D';'7D';'8D';'9D';'TD';'JD';'QD';'KD'; ... 
%  'AC';'2C';'3C';'4C';'5C';'6C';'7C';'8C';'9C';'TC';'JC';'QC';'KC']; 
%deck of 52 cards . . from wikipedia 
total_runs=2598960; 
n=0; 
for i=1:total_runs 
    index=randperm(52,5); 
    value = mod(index-1, 14); 

if length(unique(value)) == 2 
    %attempt to determine 4 of a kind 
    n=n+1; 
end 
end 
prob=n/total_runs 

編輯:

更正爲length(unique(value)) == 2 的概率,這給了0.1%和0.2%。其中,似乎之間合理。

但是它不應該是mod 13,因爲我們需要每個顏色的13個不同的值。

+1

應該是模13,當然 – 2014-09-01 02:40:29

+0

另外,你的規則正在檢測5種類型,其確實有概率爲零。 – 2014-09-01 02:41:32

+0

@BenVoigt感謝您的建議 – Anoop 2014-09-01 03:23:01