循环数列
给定数字$N$与$m$,表示在数列$1,2,\cdots,N-1,N$中从$1$开始,每$m$个数取出一个,直到取完为止,最终生成新的数列。例如,当$N=17$,$m=5$时,得到的数列为:$1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7$。
求对于$N$和$m$相对应的生成数列的通项公式。 原题是:对于给定的正整数N和k,求最小的m使得数列的最后一项为k,在上面的例子里,就是对于给定的N=17和k=13,最小的m求出来是7,不知有没有通法{:tongue:} 查了查发现,它和一个叫约瑟夫问题(Josephus Problem)的解决方法很像,但是资料里都没有找到通项公式的 现在有点怀疑,是不是只有递推公式而没有通项公式 [b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=30715&ptid=6010]4#[/url] [i]APPSYZY[/i] [/b]
估计是了,
搜索到三个算法,(也许你也看过了)最后一种没明白,前2种比较好懂.
[url]https://blog.csdn.net/ZHOUBEISI/article/details/52314603[/url] [b]回复 [url=http://kuing.orzweb.net/redirect.php?goto=findpost&pid=30780&ptid=6010]5#[/url] [i]realnumber[/i] [/b]
$a_1=0$
$a_n=(a_{n-1}+m) \mod i$
估计是求不出通项公式的
页:
[1]