《编程原本 》一2.2 轨道

简介: 本节书摘来自华章出版社《编程原本 》一书中的第2章,第2.2节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.2 轨道

要理解一个变换的全局行为,可以考察其轨道(orbit)的结构.所谓变换的轨道,就是从一个开始元素出发,通过反复应用这一变换能到达的所有元素.如果对某个n.0有y=fn(x),就说y是从x出发在变换f下可达的(reachable).如果有某个n.1使x=fn(x),就说x在f下是环路的(cyclic).如果x不在f的定义空间里,称x在f下是终止点(terminal).x在变换f下的轨道(orbit)就是x

在f 下可达的所有元素的集合.
引理2.2 一条轨道不会同时包含环路元素和终止元素.
引理2.3 一条轨道至多包含一个终止元素.
如果元素y为从x在f下可达,从x到y的距离(distance)定义为从x得到y的最小的变换步数.显然,距离并不总有定义.
给定变换类型F,类型DistanceType(F)是一个足够大的整数类型,足以表示任何变换f∈ F从T=Domain(F)的一个元素到另一元素的最大变换步数.如果类型T用k个二进制位表示,它就有2k 个值,而不同值之间只有2k.1个变换步.这样,如果T是固定大小的类型,同样大小的整数类型就能作为表示T上任意变换的距离的合法类型.(可以不用距离类型,而是在powerunary里用任意整数类型,因为这种额外推广不会在这里造成问题.)一种常见情况是同一定义域上的变换都具有同样的距离类型.这时类型函数DistanceType就对这一定义域类型有定义,定义了与相关变换类型对应的类型函数.
如果类型函数DistanceType存在,就可以写出下面过程:
template
requires(Transformation(F)) DistanceType(F) distance(Domain(F) x, Domain(F) y, F f) {
//前条件:y在f下从x可达
typedef DistanceType(F) N;
N n(0);
while (x != y) {
x = f(x);
n = n + N(1);
}
return n;
}
轨道有不同的形状.x在某变换下的轨道可以是
image

无穷的 若它既不是终止的也没有环路
终止的 若它有一个终止元素
环路的 若x 是环路的
ρ 形的 若x本身不是环路的,但它的轨道包含环路元素

如果x的轨道不是无穷的,它就是有穷的.图2.1给出了轨道的各种情况.
轨道环(cycleoforbit)是轨道的一集元素,规定轨道为无穷或终止时其环为空.轨道柄(handleoforbit)是轨道里除去环之外的部分,环路轨道的柄为空.连接点(connectionpointoforbit)是轨道上的第一个环路元素,对环路轨道取其第一个元素,对ρ形轨道是轨道柄之后的第一个元素.轨道规模(sizeoforbit)o是轨道中不同元素的个数;轨道的柄规模(handlesize)h是轨道柄中元素的个数;环规模(circlesize)c是轨道环中元素的个数.
引理2.4 o = h + c
引理2.5 从轨道中任意一点到该轨道的环路中任意一点的距离都有定义.
引理2.6若x和y是规模为c的环里的两个不同点,那么
c=distance(x,y,f)+distance(y,x,f)
引理2.7若x和y是规模为c的环的两个不同点,x到y的距离满足
0.distance(x,y,f)

相关文章
|
2月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
29天前
|
图形学
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
23 0
|
29天前
|
图形学
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
15 0
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
|
9月前
|
前端开发 芯片
【芯片前端】保持代码手感——不重叠序列检测
【芯片前端】保持代码手感——不重叠序列检测
|
10月前
行走小动画案例扩展
行走小动画案例扩展
|
Java 程序员 开发者
只用一行代码,你能玩出什么花样?
只用一行代码,你能玩出什么花样?
80 1
|
弹性计算 前端开发 容器
通俗重制系列--CSS布局
通俗重制系列--CSS布局
139 0
通俗重制系列--CSS布局
|
数据可视化 搜索推荐 程序员
程序人生 - “无代码”时代,离我们还有多远?
程序人生 - “无代码”时代,离我们还有多远?
184 0
程序人生 - “无代码”时代,离我们还有多远?
|
机器人 atlas 传感器
逐!帧!揭!秘!终于能看清波士顿动力机器人的细节了
波士顿动力,逆天机器人的代名词。 每一次新的视频放出,机器人做出各种充满视觉冲击力动作,都会引起疯狂传播。 凭借敏捷的身姿和动物般的反应能力,它们做出了各种各样对于人来来说都非常高难度的动作。 这样的机器人到底是如何设计的呢?波士顿动力并没有对外披露太多。
852 0
逐!帧!揭!秘!终于能看清波士顿动力机器人的细节了