python能不能分析一行数字的周期性

ai527518 2012-04-27 03:25:23
如题
比如这行数字是0 1 4 6 0 1 4 6 0 1 4 ……

0 1 4 6一个循环

在我不知道这行内容及周期性的情况下,能否用python分析出来?
能的话如何做?
...全文
366 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_NBFA 2012-04-28
  • 打赏
  • 举报
回复

def SPP(a):
alen = len(a);
mc = None;
for i in range(1, alen//2+1):
for j in range(0, alen-i):
if(a[j] != a[j+i]):
break;
else:
mc = i;
break;
return mc;

myas = [];
myas.append("01460146");
myas.append("0146014601");
myas.append("0000");
myas.append("1212");
myas.append("01460146013");
myas.append("12312");
myas.append("12122");
for a in myas:
mc = SPP(a);
if(mc == None):
print(a, "is not a periodic sequence");
else:
print("The SPP is:", a[:mc]);
libralibra 2012-04-27
  • 打赏
  • 举报
回复
如果是纯循环,就做一个标记从0开始,len=1
每次截取2*len的长度(因为循环小数可以写到某个位置停止加省略号,长度可能不一定正好是循环节的倍数)
比较前后相等就行了

如果是混循环,就做2个标记,一个a记录开始,一个b记录结束,原理跟上面一样,每次截取到a+2*b的长度就行了
panghuhu250 2012-04-27
  • 打赏
  • 举报
回复
python能帮你一点,例如python中可以用dictionry记录/查询每个数出现的位置。更重要的是你的数列的特性,这就要靠你自己了,比如:

循环是否一定从第一个数开始,还是会有更复杂的情况:0 1 2 3 1 2 3 1 2 3?

是否一个数出现重复就一定预示着一个循环,还是会有更复杂的情况:0 1 0 0 1 0 1 0 0 1?

等等。

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧