约瑟夫环问题(数学分析法)

解决我的几个困惑:

1.为什么数组的坐标是从0开始而不是从1开始呢?

ans:若m=n=5时,m%n=0,那么这样指向的数是哪一位呢?因此从0开始更方便来表示它是一个环。

2.如何理解?

ans:我找到的一个比较通俗的理解方法:点击打开链接

假设最后存活的人在第i轮的筛选中坐标为x(i);

conclusion:这道题用到了递归的思想。在第一轮的筛选中(m-1)%n被杀,下一轮中m%n成为0号,(m+i)%n是第二轮中的i号。

x(n-1)=I则x(n)=(m+i)%n;

而每一轮中,选手都是在逐渐减少的,所以n是要变化的写出最终的递推式:

x(n)=(m+x(n-1))%n   //这里的n与输入的n个人是不同的含义,这里的n是变化的!


最后贴代码:真的是既简洁又快速,不多说了我还要学习循环链表的实现方法

<script src="https://code.csdn.net/snippets/2057190.js"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值