查看: 142|回复: 1|关注: 0
打印 上一主题 下一主题

黄金岛的诈金花在哪: [已解决] matlab 中关于约瑟夫环的问题。

[复制链接]

新手

7 麦片

财富积分


诈金花闷牌技巧教程 www.ycdqd.tw 050


2

主题

2

帖子

0

最佳答案
跳转到指定楼层
1#
n
个人围成一圈,按序列编号。从第
1
个人开始报数,数到
m
时该人退出,并且下一个从
1
重新开始报数,求出出圈人的顺序
(n>m
,例如
n=20
,
m=7)
。
请编写一个通用程序。

望解答,谢谢!



新手

9 麦片

财富积分


050


0

主题

4

帖子

1

最佳答案
2#
发表于 2019-11-3 15:25:49 | 只看该作者 |此回复为最佳答案
clear all
n=200;
m=7;
node=1:n; %存放所有存在节点的序号
now=1;%记录轮到的人1-20
i=1; %记录当前叫到的号码1-7
result=[]; %存放结果顺序
while length(node)~=0
    if mod(i,m)==0
        result=[result,now];
        i=1;
        now1=now;
        if now==max(node);
            now=node(1);
        else
            now=node(find(node==now)+1);
        end
        node(find(node==now1))=[];
    else
        i=i+1;
        if now==max(node);
            now=node(1);
        else
            now=node(find(node==now)+1);
        end
    end
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 诈金花闷牌技巧教程 返回列表