SB树

这棵二叉树中包含了所有的非负有理数首先看它的构造

左侧有一个点0/10/1右侧有一个点1/01/0在中间创建一个点0+1/1+0=1/10+1/1+0=1/1这就是SB树的根

接下来1/11/1的左儿子是它和0/10/1的分子分母分别相加1+0/1+1=1/21+0/1+1=1/2右儿子是与1/01/0做这个操作1+1/1+0=2/11+1/1+0=2/1接下来的节点其左儿子为该节点与左兄弟的分子分母分别相加特别地没有左兄弟时即它在左链上认为左兄弟为0/10/1右儿子为该节点与右兄弟的分子分母分别相加特别地没有右兄弟时即它在右链上认为右兄弟为1/01/0

首先证明

SB树中每个数都满足分子分母互质即每个非负有理数至多出现一次

我们来证明对每个节点考虑其加入时刻假如此时构造它使用了m/nm/nm/nm'/n'那么必有mnmn=1m'n-mn'=1

首先这对根节点成立

现在假设对m+m/n+nm+m'/n+n'的构造时刻m/nm/nm/nm'/n'mnmn=1m'n-mn'=1现在只要证明

  1. (m+m)nm(n+n)=1(m+m')n-m(n+n')=1
  2. m(n+n)(m+m)n=1m'(n+n')-(m+m')n=1

而这两个等式都与原等式相同于是对每个m/nm/n存在a,ba,b使am+bn=1am+bn=1从而m,nm,n互质