Loading docs/misc/stern-brocot.md +8 −6 Original line number Diff line number Diff line ## Stern-Brocot 树 Stern-Brocot 树是一种维护分数的优雅的数据结构。它分别由 Moritz Stern 在 1858 年和 Achille Brocot 在 1861 年发现这个结构。 # 概述 ### 概述 Stern-Borcot 树从两个简单的分数开始: Loading @@ -26,11 +28,11 @@ $$ 你可以把第 $i$ 层的序列当作是深度为 $i-1$ 的 Stern-Brocot 树的中序遍历。 # 性质 ### 性质 接下来讨论一下 Stern-Brocot 树的性质。 ## 单调性 #### 单调性 在每一层的序列中,真分数是单调递增的。 Loading @@ -53,7 +55,7 @@ $$ 另一边同理可证。 ## 最简性 #### 最简性 序列中的分数(除了 $\frac{0}{1},\frac{1}{0}$ )都是最简分数。 Loading @@ -75,7 +77,7 @@ $$ 有了这两个性质,你就可以把它当成一棵平衡树来做了。建立和查询就向平衡树一样做就行了。 # 实现 ### 实现 构建实现 Loading @@ -102,7 +104,7 @@ string find(int x, int y, int a = 0, int b = 1, int c = 1, int d = 0) { } ``` # Farey 序列 ## Farey 序列 Stern-Brocot 树与 Farey 序列有着极其相似的特征。第 $i$ 个 Farey 序列记作 $F_i$ ,表示把分母小于等于 $i$ 的所有最简真分数按大小顺序排列形成的序列。 Loading Loading
docs/misc/stern-brocot.md +8 −6 Original line number Diff line number Diff line ## Stern-Brocot 树 Stern-Brocot 树是一种维护分数的优雅的数据结构。它分别由 Moritz Stern 在 1858 年和 Achille Brocot 在 1861 年发现这个结构。 # 概述 ### 概述 Stern-Borcot 树从两个简单的分数开始: Loading @@ -26,11 +28,11 @@ $$ 你可以把第 $i$ 层的序列当作是深度为 $i-1$ 的 Stern-Brocot 树的中序遍历。 # 性质 ### 性质 接下来讨论一下 Stern-Brocot 树的性质。 ## 单调性 #### 单调性 在每一层的序列中,真分数是单调递增的。 Loading @@ -53,7 +55,7 @@ $$ 另一边同理可证。 ## 最简性 #### 最简性 序列中的分数(除了 $\frac{0}{1},\frac{1}{0}$ )都是最简分数。 Loading @@ -75,7 +77,7 @@ $$ 有了这两个性质,你就可以把它当成一棵平衡树来做了。建立和查询就向平衡树一样做就行了。 # 实现 ### 实现 构建实现 Loading @@ -102,7 +104,7 @@ string find(int x, int y, int a = 0, int b = 1, int c = 1, int d = 0) { } ``` # Farey 序列 ## Farey 序列 Stern-Brocot 树与 Farey 序列有着极其相似的特征。第 $i$ 个 Farey 序列记作 $F_i$ ,表示把分母小于等于 $i$ 的所有最简真分数按大小顺序排列形成的序列。 Loading