二叉树中常用换算式推导

先统一表示

我们知道,节点的度表示:一个节点有几个子节点。如:度为2的节点,有两个子节点。

对于二叉树来说,节点度的种类只有三种,我们分别用下面的方法表示树节点:

  1. 度为2的节点表示为 n2
  2. 度为1的节点表示为 n1
  3. 度为0的节点表示为 n0

(n0 = n2 + 1) 怎么得到的?

往往这样的公式,来自善于观察之人的总结,推导过程其实也不复杂,你需要明白两件事情:

  1. 节点总数为N的二叉树,仅由三种节点组成,所以有:N=n2+n1+n0
  2. 树是一对多关系的呈现,每个节点都有唯一一个父节点(除了根节点),更形象的描述应该是每个几点都有一个指向父节点的边,那么边和节点种类的规律如下:
    • 向上看
      • 每个节点都有一个边和父节点连接,所以总共有N-1个边,除了根节点
    • 向下看
      1. n2 节点有2个边
      2. n1 节点有1个边
      3. n0 节点有0个边
      4. 所以边的总数B为: (2 x n2 + 1 x n1 + 0 x n0) = B
    • 所以,边和节点数的关系为: B + 1 = N

有了上面的前提,我们常识推导下:

>> (2 x n2 + 1 x n1 + 0 x n0) + 1 = n2 + n1 + n0
经过两边的化简结果为:
>> n2 + 1 = n0

看,很简单吧,最后你要记住对于二叉树来说:n0=n2+1这个事实。

二叉树指针域的空闲计算

每个树都会有叶子,也就是终端节点,他们的指针域是没有被使用的,同样的,你也知道有一个子节点的节点,它也有一个指针域没有被使用。

那么对于一个二叉树来说,有多少指针域没有被使用呢?其实他是有一个定律的,就是:如果二叉树有N个节点,那么没有使用的指针域为N+1,这个怎么来的?
我们推导下,先看看前提:

  1. 每个节点有两个指针域,那么N个节点的树就有2N个指针域
  2. 不同种类的节点用的指针域的个数:
    1. n2 用了2个
    2. n1 用了1个
    3. n0 用了0个
      所以,通过上面的前提,我们来计算下没有被使用的指针域的个数,我们表示它为W,
>> 2 x N = 2 x (n2 + n1 + n0) = W + (2 x n2 + 1 x n1 + 0 x n0)
两边化简后:
>> W = n1 + 2 x n0

这个看起来和我们要得到的结论没有联系啊,先别急,我们前面不是有一个n0 = n2 + 1这个事实么?带入看看:

>> W = n1 + 2 x n0 = n1 + n0 + (n2 + 1)
>> N = n0 + n1 + n2
替换并化简后
W = n1 + n0 + n2 + 1 = N + 1

好了,这回得到了W = N + 1了,神奇么?

没有使用的指针域是这么多,那用了的自然就是N - 1了,因为总共就2N啊。

其实,还有一个更简单的思考方向,而用的也是我们已知的前提

  1. 二叉树的边的个数,就是总节点数N减去1
  2. 每个边便是一个指针域的表示

好了,有了这些,你就知道,总共有N个节点的二叉树,应该有2N个指针域,有N-1个边(根指针并没有父亲),也就用了N-1个指针域,剩下的,就只有(2N - N - 1) = N + 1

二叉树模型期权定价推导如下: 假设有一个股票价格为S的资产,其价格在每个时间步长有两种可能的变化:上涨或下跌。假设上涨的概率为p,下跌的概率为1-p。假设每个时间步长的长度为Δt,总共有n个时间步长。则在第i个时间步长,股票价格为Si=S*(u^i)*(d^(n-i)),其u为上涨幅度,d为下跌幅度,满足u*d=1,即u=1/d。因此,上涨幅度和下跌幅度之间存在一个负相关关系。 假设我们有一个欧看涨期权,其行权价格为K,到期时间为T。则该期权的价值为V(S,t),其t表示当前时间。根据无套利原理,该期权的价值必须满足以下条件: V(S,t)=pV(Su,t+Δt)+(1-p)V(Sd,t+Δt),其V(Su,t+Δt)表示在上涨状态下的期权价值,V(Sd,t+Δt)表示在下跌状态下的期权价值。 根据期权的到期收益,我们可以得到以下公: V(Su,T)=max(Su-K,0),V(Sd,T)=max(Sd-K,0) 因此,我们可以通过递归地向后计算来确定期权的价值。具体来说,我们从到期时间开始,计算出每个时间步长的期权价值,然后向前递归计算出当前时间的期权价值。最终,我们可以得到当前时间的期权价值V(S,0)。 在实际计算,我们可以使用二叉树来表示股票价格的变化,并使用递归算法来计算期权的价值。具体来说,我们可以从到期时间开始,计算出每个时间步长的股票价格,并将其存储在二叉树。然后,我们可以使用递归算法来计算每个节点的期权价值,最终得到根节点的期权价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值