python计算函数轨迹 python自动轨迹绘制( 二 )


return isprime#返回后否是素数(是:True , 否:False)
changelast=lambda listx,addvalue:listx[0:-1]+[addvalue]#改变列表末尾的函数
while len(lists[0] if len(lists) else [0]*n)n:#当素数环长度小于最大数时
n2 = len(lists[0]) #n2为判定 , 理论当前列表长度最大值
for listn in lists:#遍历各个可能的素数环
surplusnum=list(range(1,n+1))#默认值
for j in listn:#遍历当前列表的数
surplusnum.remove(j)#剩余的数中删除此数
for i in surplusnum:#遍历剩余的数
if sumisprime(listn[n2-1], i):#最后一个数与它的和是素数
if len(listn) == n2:#如果现在这个列表是没有被添加过的
listn.append(i)#增加在这个列表
else:#如果该列表已经被添加过
lista = changelast(listn, i)#要加入的列表
if lista not in lists:#如果不在这个列表里
lists.append(lista)#添加到另一个列表
for listn in lists.copy():#防止lists被删造成影响
if len(listn) != n2+1:#如果长度没有达到预期(+1)
lists.remove(listn)#删除该列表(取消此可能性)
if len(lists[0]) == n:#已经符合条件
for listn in lists:#遍历列表,检查首尾
if sumisprime(listn[-1], listn[0]):#如果首尾相加等于素数
print(listn)#环成立,打印出来
break#结束循环
说明:经试验,都没什么问题,n=12也能很快运算完(但我劝你不要打出来),如果你只需要1个素数环,可以把break的缩进调到print(listn)并列 。
关于python计算函数轨迹和python自动轨迹绘制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读