蓝桥杯-扑克序列问题最简单易懂程序(Matlab-蒙特卡洛模拟)

扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。
请填写出所有符合要求的排列中,字典序最小的那个。
例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。

 r=[]  %定义r为空矩阵
for i=1:1:1000000; %蒙特卡洛模拟,试验次数1百万次;8!=40320,1百万次试验足够了
x=[1 1 2 2 3 3 4 4]; %取要求的8张牌
y=randperm(8);    %随机种子,洗牌   
z=x(y);   %洗好的牌
[a1]=find(z==1); %A的位置
a11=a1(1);  %第一张A的位置
a12=a1(2);  %第二张A的位置
[b1]=find(z==2); %2的位置
b11=b1(1); %第一张2的位置
b12=b1(2); %第二张2的位置
[c1]=find(z==3);  %3的位置
c11=c1(1);  %第一张3的位置
c12=c1(2);  %第二张3的位置
[d1]=find(z==4);  %4的位置
d11=d1(1);  %第一张4的位置
d12=d1(2);  %第二张4的位置
if a12-a11==2 && b12-b11==3 && c12-c11==4 && d12-d11=&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值