zoukankan      html  css  js  c++  java
  • 当离散遇见连续

    作者:jostree 转载请注明出处 https://www.cnblogs.com/jostree/p/10274903.html

    在连续的空间中,我们可以说一条曲线是连续的、是可导的或者可微的,并且可以计算出曲线上一点的导数。那么离散的数列空间是否也具有这相同优美的性质呢?数列是具有类似于连续空间中的微分特性么? 如何使用积分的思想计算多项式的累加和?幂积分与等比数列求和有什么联系?连续空间中的对数函数在离散空间中对应着什么?在下面的部分中,我们将搭建起离散空间和连续空间的桥梁,欣赏这离散空间的美。

    微分与差分

    我们定义微分算子:

    [D f(x) = lim_{h o 0} frac{f(x + h) - f(x)}{h} ]

    在离散空间中,我们限制了(h)的取值只能为正整数,因此(h o 0)时,(h=1)是该极限最接近的值,从而我们定义差分算子:

    [Delta f(x) = f(x + 1) - f(x) ]

    
    在连续空间的传统微积分中,我们有微分运算:

    [D(X^m) = mx^{m-1} ]

    很不幸,在离散空间中却没有如此优美的结果:

    [Delta(x^3) = (x+1)^3 - x^3 = 3x^2 + 3x + 1 ]

    是哪里出错了么?我们重新审视连续空间中幂的定义,把(h)添加进幂的定义中,我们发现:

    [x^m = prod_{k=0}^{m - 1}lim_{h o 0}(x-kh) ]

    其中符号(prod)表示连乘(例如(prod_{k=1}^{3}k=1*2*3)),离散空间中我们限制了(h)的取值只能为正整数,因此(h o 0)时,我们只能取(h=1),从而我们定义一种在离散空间的新运算等价于连续空间的幂运算:

    [x^{underline{m}} = prod_{k=0}^{m - 1}(x-k) ]

    这不就是排列数么?!原来连续空间中的幂对应与离散空间就是排列数,有(x)个不同的硬币,我们依次选出(m)个,总共的选择方法有:

    [egin{aligned} & x * (x-1) * dots * (x - (m - 1)) \ =& prod_{k=0}^{m-1} x-k \ =& x^{underline{m}} end{aligned} ]

    我们称新运算(x^{underline{m}})为下降幂,终于下降幂运算在差分算子中得到了优美的结果:

    [egin{aligned} & Delta(x^{underline{m}})\ =& (x+1)^{underline{m}} - x ^{underline{m}}\ =& (x+1)x dots (x-m+2) - x dots (x-m+2)(x-m+1)\ =& (x+1)x^{underline{m-1}} - x^{underline{m-1}}(x-m+1)\ =&mx^{underline{m-1}} end{aligned} ]

    积分与求和

    连续空间中微分算子(D)有一个逆,叫作积分算子(int),积分算子与微分算子的关系为

    [g(x) = Df(x) Leftrightarrow int g(x)dx = f(x) + C ]

    对应于离散空间,(Delta)也有一个逆,叫做求和算子(sum),求和算子与差分算子的关系为

    [g(x) = Delta f(x) Leftrightarrow sum g(x)delta x = f(x) + C ]

    (x)的取值处,(C)为常数,当我们进行差分运算时,如同微分运算,常数会被消去。

    连续空间中也有定积分

    [int_a^b g(x)dx = f(x) ig| _a^b = f(b) - f(a) ]

    同样,对于离散空间,我们也定义相似的算子确定和

    [sum_a^b g(x)delta x = f(x) ig|_a^b = f(b) - f(a) ]

    下面我们来探索算子(sum_a^bg(x)delta)究竟有什么直观的意义呢?
    我们发现当(a)(b)是正整数,且(bge a)

    [sum_a^bg(x)delta x= sum_{k=1}^{b-1}g(k)= sum_{age k > b}g(k) ]

    在连续空间中的定积分公式

    [int_0^n x^m dx = frac{n^{m+1}}{m+1} ]

    应用第一节中的下降幂算子得到了离散空间中另一个优美的公式:

    [sum_{0 ge k > n} k ^{underline{m}} = frac {k^{underline{m+1}}}{m+1} igg|_0^n = frac{n^{m+1}}{m+1} ]

    这个优美的公式可以解决离散空间的求和问题,当(m=1)时,(k^{underline{1}} = k)即:

    [sum_{0 ge k > n}k = frac{n^{underline{2}}}{2} = n(n-1)/2 ]

    这不就是高斯求和公式么?我们用离散空间和这种优雅的方式得到了它,进一步任何幂次的求和公式我们都可以计算

    [k^2 = k^{underline{2}} + k^{underline{1}} ]

    从而

    [egin{aligned} & sum_{0 ge k > n}k^2 \ =& sum_{0 ge k > n}k^{underline{2}} + k^{underline{1}}\ =& frac{n^{underline{3}}}{3} +frac{n^{underline{2}}}{2} \ =& frac{1}{3}n(n-frac{1}{2})(n-1) end{aligned} ]

    你得到了它!

    负数下降幂与离散空间中的自然对数

    我们定义的下降幂公式:

    [x^{underline{n}} = x^{underline{n + 1}} / (x - n) ]

    不妨对n小于等于0的情况进行推广,从而可以得到如下表格

    [egin{array}{ll} hline hline n & x^{underline{n}} \hline hline 0 & 1 \hline -1 & x^{underline{-1}} = frac{1}{(x+1)} \hline -2 & x^{underline{-2}} = frac{1}{(x+1)(x+2)} \hline -3 & x^{underline{-3}} = frac{1}{(x+1)(x+2)(x+3)} \hline hline end{array} ]

    对于负数下降幂,差分性质依然成立:

    [egin{aligned} Delta x^{-2} &= frac{1}{(x+2)(x+3)} - frac{1}{(x+1)(x+2)} \ &= frac{(x+1) - (x+3)}{(x+1)(x+2)(x+3)} \ &= -2x^{underline{-3}} end{aligned} ]

    同样,对于负数下降幂求和公式仍然成立:

    [sum_{a}^b x ^{underline{m}} delta x = frac {x^{underline{m+1}}}{m+1} igg|_a^b, m eq -1 ]

    在连续空间中,若(m=-1)我们有

    [int_a^b x^{-1} dx = ln x igg|_a^b ]

    在离散空间中我们希望找到相同的功能的函数,他需要满足:

    [x^{underline{-1}} = frac{1}{x+1} = Delta f(x) = f(x+1) - f(x) ]

    从而我们得到:

    [f(x) = frac{1}{1} + frac{1}{2} + dots + frac{1}{x} ]

    定义函数(f(x))在(x)为正整数时的调和数,定义为(H_x),他等价于连续空间中的(ln(x))

    从而我们可以得到下降和的完全描述:

    [sum_a^b x^{underline{m}} delta x = left{ egin{aligned} frac{x^{underline{m+1}}}{m+1} igg|_a^b && , m eq -1 \ H_x igg|_a^b &&, m = -1 end{aligned} ight. ]

    在连续空间中,我们有(D e^x = e^x)在连续空间中,我们是否也存在一个函数具有(Delta f(x) = f(x))呢?

    [f(x+1) - f(x) = f(x) Leftrightarrow f(x + 1) = 2f(x) ]

    久违的结果!在离散空间中(f(x) = 2^x)等价于连续空间中的(f(x) = e^x) ,而离散空间中的2就等价与连续空间中的自然对数(e)

    总结

    我们在这里总结连续空间中的各种微积分形式在离散空间中对应的查分求和形式

    [egin{array}{lll} hline hline 说明 & 连续空间 & 离散空间 \ hline hline 微分 Leftrightarrow 差分 & D f(x) = lim_{h o 0} frac{f(x + h) - f(x)}{h} & Delta f(x) = f(x + 1) - f(x) \hline 积分 Leftrightarrow 求和 & g(x) = Df(x) Leftrightarrow int g(x)dx = f(x) + C & g(x) = Delta f(x) Leftrightarrow sum g(x)delta x = f(x) + C \hline 定积分 Leftrightarrow 限定求和 & int_a^b g(x)dx = f(x) ig|_a^b = f(b) - f(a) & sum_a^b g(x)delta x = f(x) ig|_a^b = f(b) - f(a) \hline 幂 Leftrightarrow 下降幂 & x^m & x^{underline{m}} \hline 幂微分 Leftrightarrow 下降幂差分 & D (x^m) = m x^{m-1} & Delta (x^{underline{m}}) = mx^{underline{m-1}} \hline 自然对数 Leftrightarrow 离散对数 & e & 2 \hline 自然对数函数 Leftrightarrow 离散调和函数 & ln(x) = log_e(x) & H(x) = frac{1}{1} + frac{1}{2} + dots + frac{1}{x}\hline 幂积分 Leftrightarrow 下降幂求和 (m eq -1)& int_a^b x^m dx = frac{x^{m+1}}{m+1} ig|_a^b = frac{b^{m+1}-a^{m+1}}{m+1} & sum_{a ge x > b} x ^{underline{m}} delta x = frac {x^{underline{m+1}}}{m+1} ig|_a^b = frac{b^{underline{m+1}} - a^{underline{m+1}}}{m+1} \hline 幂积分 Leftrightarrow 下降幂求和 (m = -1)& int_a^b x^m dx = int_a^b frac{1}{x} dx = ln(x) ig|_a^b = ln(b) - ln(a) & sum_{a ge x > b} x ^{underline{-1}} delta x = H(x) ig|_a^b = H(b) - H(a) \hline 指数函数积分 Leftrightarrow 等比数列求和 (c eq 1)& int_a^b m^x = frac{m^x}{ln(m)} ig|_a^b = frac{m^b - m^a}{ln(m)}& sum_{a ge x > b} m^x delta x = frac{m^x}{m-1}ig|_a^b = frac{m^b - m^a}{m-1} \hline hline end{array} ]

  • 相关阅读:
    hdu 1057 (simulation, use sentinel to avoid boudary testing, use swap trick to avoid extra copy.) 分类: hdoj 2015-06-19 11:58 25人阅读 评论(0) 收藏
    hdu 1053 (huffman coding, greedy algorithm, std::partition, std::priority_queue ) 分类: hdoj 2015-06-18 19:11 22人阅读 评论(0) 收藏
    hdu 1052 (greedy algorithm) 分类: hdoj 2015-06-18 16:49 35人阅读 评论(0) 收藏
    hdu 1051 (greedy algorithm, how a little modification turn 15ms to 0ms) 分类: hdoj 2015-06-18 12:54 29人阅读 评论(0) 收藏
    hdu 1050 (preinitilization or postcleansing, std::fill) 分类: hdoj 2015-06-18 11:33 34人阅读 评论(0) 收藏
    hdu 1047 (big integer sum, fgets or scanf, make you func return useful infos) 分类: hdoj 2015-06-18 08:21 39人阅读 评论(0) 收藏
    hdu 1041 (OO approach, private constructor to prevent instantiation, sprintf) 分类: hdoj 2015-06-17 15:57 25人阅读 评论(0) 收藏
    hdu 1039 (string process, fgets, scanf, neat utilization of switch clause) 分类: hdoj 2015-06-16 22:15 38人阅读 评论(0) 收藏
    hdu 1036 (I/O routines, fgets, sscanf, %02d, rounding, atoi, strtol) 分类: hdoj 2015-06-16 19:37 32人阅读 评论(0) 收藏
    查漏补缺(一)
  • 原文地址:https://www.cnblogs.com/jostree/p/10274903.html
Copyright © 2011-2022 走看看