我必须创建代码,该代码应该显示获得黑桃a的概率,然后显示任何2。主要问题是我可以编写代码来显示获得黑桃a和2的概率。 ,即1/52 * 1/51。我无法获得1/52和4/51,如何获得这些概率?
这是我到目前为止的代码
M = 100000; %number of MC experiments to run
N = 0; %number of successful MC experiments
P = 0; %probability
figure(1); %create a new figure window
hold on; %hold all plots
%start experiment loop
for i=1:M
deck = randperm(52)'; %generate deck of cards, 1x52 vector
pos1 = randi(52); %select position to draw from randomly
pos2 = randi(52); %select position to draw from randomly
while pos2 == pos1
pos2 = randi(52);
endwhile
if (deck(pos1) == 1 && deck(pos2) == 2)
N +=1; %increment number of successful experiments
endif
plot(i,N/M,'r*') %plot probability of successful experiments thus far
endfor
hold off; %release all plots
P = N/M; %calculate probability
format long %prefer long format
disp('Probability of drawing Ace of Spades and a 2 is:'), disp(P)
答案 0 :(得分:2)
最初为注释,但超出了字数。更多提示而不是答案:
首先,您应该清楚自己的编码。黑桃王牌对应什么?什么对应于2? 1:52到底如何映射到甲板上?我想不出自然的编码方式,其中数字1对应于黑桃A,数字2对应于作为2的卡。原则上的解决方案是使用商和除以4的余数来确定秩和。分别适合。便宜但可使用的解决方案(即使不是很自然)是让1对应于黑桃a,数字2,3,4,5对应于4的二(不指定其余的编码)。
一旦您想到了这一点,只需洗牌并看一下前两张牌(没有理由进一步随机选择牌,pos1
和pos2
就毫无意义:只需使用1,2)。在您的编码下,最顶尖的是黑桃王牌吗?下一个是您编码的2吗?