当前位置: 首页> 科技> 数码 > python:生成 Kolakoski 序列,可以转换为八卦序列

python:生成 Kolakoski 序列,可以转换为八卦序列

时间:2025/7/17 16:08:56来源:https://blog.csdn.net/belldeep/article/details/142219657 浏览次数:0次

Kolakoski 序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列。

Kolakoski 序列是一个分形数列:如果将相邻相同的数字组成一组,那么...
如果把每一组数用它的长度来替换,就会得到这个数列本身。

Kolakoski 序列前几项为:1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,...
( sequence A000002 in the OEIS )

编写 test_kolakoski.py  如下

# -*- coding: utf-8 -*-
""" Kolakoski序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列。Kolakoski序列是一个分形数列。
"""
n = 100
alist = [1,2,2]
prev = 2
tail = 3
a = 1
while tail < n:for i in range(0,alist[prev]):alist.append(a)tail += 1a = a^3 # 按位异或prev += 1
# 输出 Kolakoski序列
print(alist)

运行 python test_kolakoski.py  生成 n=100个数字的序列

[1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2]

^ 按位异或 运算符平时比较少用到。 


假设 1为阳爻,2为阴爻,那么可以转换为八卦序列。

编写  kolakoski-8gua.py  如下

# -*- coding: utf-8 -*-
""" Kolakoski序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列。Kolakoski序列是一个分形数列。
"""
n = 100
alist = [1,2,2]
prev = 2
tail = 3
a = 1
while tail < n:for i in range(0,alist[prev]):alist.append(a)tail += 1a = a^3 # 按位异或prev += 1
# 输出 Kolakoski序列
#print(alist)blist = []
b = 0
for i in range(0,n):if i %3 == 0:b = alist[i]*100elif i %3 ==1:b += alist[i]*10elif i %3 ==2:b += alist[i]blist.append(b)
# 输出每3位数,组成一组
print(blist)clist = []
for b in blist:if b == 122:clist.append('震')elif b == 112:clist.append('兑')elif b == 212:clist.append('坎')elif b == 121:clist.append('离')elif b == 221:clist.append('艮')elif b == 211:clist.append('巽')else:clist.append(str(b))
# 输出八卦序列
print(clist)

运行 cmd
chcp 65001
python kolakoski-8gua.py 

[122, 112, 122, 122, 112, 112, 212, 112, 122, 112, 112, 122, 122, 112, 122, 121, 121, 122, 122, 112, 122, 122, 112, 112, 122, 121, 122, 122, 112, 122, 122, 112, 112]
['震', '兑', '震', '震', '兑', '兑', '坎', '兑', '震', '兑', '兑', '震', '震', '兑', '震', '离', '离', '震', '震', '兑', '震', '震', '兑', '兑', '震', '离', '震', '震', '兑', '震', '震', '兑', '兑']

关键字:python:生成 Kolakoski 序列,可以转换为八卦序列

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: