约瑟夫环详解

第n个出列  ? ---> 0(**)

从上面可以总结规律:

1.  f(*) = (f(**)+m)%n  n指当前未出列元素的个数

2. f(**) 每次都是减少最右边的元素,所以最后一个元素为0

通过以上两个规律就可以进行求解:

最后一个出列的元素为0,即

f(**)(1) = 0; 则 f(*)(1) = (f(**)(1)+3)%1;

因为下一次出列是按照f(**)中的元素进行出列的,所以f(*)(1)序号与f(**)(2)序号相同,即:

f(**)(2)=f(*)(1); 同理可以求出f(*)(2); f(*)(2) = (f(*)(1)+3)%2;

最后得出公式 f(*)(1)=(0+m)%n;  f(*)(n) = (f(*)(n-1)+m)%n; 

扩展 倒数第k个出列的肿么求呢?  

其实挺简单,只要把初始条件换一下,继续套用上面总结出来的公式就ok了。

f(**)(k) = k-1;

f(*)(k)=(f(**)(k)+m)%n;  f(*)(n) = (f(*)(n-1)+m)%n;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 郭相麟 人生苦短 遇见的人和事 在对与错中迷茫 执着于对与错的判断 在判断中情绪容易失控 在失控中曾经的美好 变得...
    郭相麟阅读 240评论 0 0
  • 24岁之前,时间就是秒分时,天周月。本命年开始,时间成了柳条抽丝越来越暖,桂花飘香与日俱冷,时间超越了具体的刻...
    杨舒绿阅读 785评论 0 1
  • 走的最急的往往都是最美的风景。 不知不觉已经离开洛阳一个月了,在那里度过的一千多个日日夜夜,那些或哭或笑、或吵或闹...
    柳青桐阅读 309评论 5 5
  • 我和你,刚开始认识的时候,不熟,甚至可能我不喜欢你,你的习惯,你的生活方式,你的价值观。 后来,慢慢的我和你有了更...
    Zlee阅读 321评论 0 1
  • 接到茹的电话时,我正听着粤曲小调,懒洋洋地躺在沙发上小歇,享受周末难得的悠闲。 茹含着一肚子怨气的向我抱怨说,她与...
    一泓夜雨阅读 307评论 10 10