
一个
较早的帖子 概述了一些探索的想法
法雷 捉摸中的序列,但您必须已经具有生成序列的数据。这是如何生成此数据的概述。的定义和性质
法雷 序列来自哈迪& Wright's
数论概论 (我正在慢慢地解决)。
的
法雷 订单顺序
n 是分母不超过0到1的不可约分数的序列
n。因此,序列的元素具有以下形式
h / k ,在哪里
h <
k <
n和
h 和
k 是相对黄金的。
关于的主要定理 法雷 数字为他们提供了它们的特性(定理29 托夫 )。的特性 法雷 顺序是,如果 h / k , H' '/ k''和 h'/ k' 是一个连续词 法雷 然后 H' '/ k'' 是个 中位数 的 h / k 和 h'/ k' 。 如果 h / k 和 h'/ k' 是两个减少的分数 中位数 is given by (h+ H' )/( k+ k' )。
当定理告诉您如何实现算法时,这很好。该属性告诉我们 法雷 从F1 = {0/1,1/1}开始,可以迭代或递归构建序列。做到这一点的算法是一个很好的算法-可能不经常用作递归的教科书练习,因为它可以帮助您是否具有一些表示分数的数据结构或类,以及一种判断整数是否相对质数的方法(可以使用欧几里得算法来实现 光盘 ()函数)。
这是如何计算下一个的概述 法雷 顺序,假设您已经有一个。
0)输入一个 法雷 序列 旧序列 (初始顺序为{0/1,1/1})
1)创建一个新的空序列 newSequence
2)迭代 旧序列 并通过找到发生的最大分母来找出其水平 n
3)设置 n= n+1
4)迭代 旧序列,查看每对相邻的元素( 剩下 和 对)
4.1)添加 剩下 至 newSequence
4.2)如果分母 剩下 和 对 总和 n,形成他们的 中位数
4.2.1)的分子和分母 中位数 比较素,添加 中位数 至 newSequence
5)添加最后一个元素 旧序列 至 newSequence
请注意,您只需要添加新元素,其中现有相邻元素的分母之和为 n 价值-当这种情况发生时,您形成 中位数 两个相邻元素中的一个。此外, 中位数 仅当分数无法减少时才添加。
以下是一些Java-
ish 与上述代码相对应的代码-它假定
旧序列 和
newSequence 是一个
数组列表 并且您有一个包含字段的Fraction类
数 (分子)和den(分母)。

这是前五个 法雷 从算法中获得的序列:
帖子顶部的图片是通过在
处理中,然后使用结果绘制关联的福特圈子-您可以使用常规Java(或其他语言)执行类似的操作。如果您绘制与序列相关的福特圆,则分数为“
压裂 ”将以(x,y)为中心,半径为r,其中
x =(比例)* frac.num / frac.den
y = r
r =(比例)/(2 *( 压裂 .den)^ 2)
其中“缩放”是一些缩放因子(可能在100左右),会增加图像的大小。
在这里,我决定为每个圆绘制两个副本,一个在另一个的顶部。
它仅包含0到1之间的分数,并且包含分母的所有简化分数 k < n, 连接 法雷 欧拉序列 宽容 功能。欧拉氏 宽容 函数是对给定的算术函数 k,计算小于的整数 k 相对来说是最重要的。这恰好是表格形式的一部分的次数 h / k 将出现在 法雷 顺序 k>1.
的
法雷 算法,如何绘制福特圆以及与欧拉的连接
宽容 功能在J.H.康威和R.K.盖伊
数字书 -像这样的书的伟大伴侣
托夫 .