葛立恒数二吧 关注:860贴子:67,458
  • 11回复贴,共1

增长率是什么?如何计算?怎样构造一个简单的记号?

只看楼主收藏回复

近期本吧出现了很多新朋友,你们可能有一些疑惑,希望本帖对你们有所帮助。
我们通常说的增长率,一般指的是快速增长率FGH,它的计算规则是:
1、f(n)=n+1的增长率为0;
2、若f(n)的增长率为α,则fⁿ(n)=f(f(f(...f(f(n))...)))(迭代n层)的增长率为α+1。
f(n)=n+1的增长率为0,f²(n)=f(f(n))=f(n+1)=n+2,f³(n)=f(f(f(n)))=n+3...,
fⁿ(n)=f(f(f(...)))=n*2的增长率为1,注意,迭代次数必定随着自变量趋于无穷其增长率才能增加1,如果只迭代有限次,那么增长率并不提升。
因而fᶜ(n)=n+c(其中c为常数,下同)的增长率仍然是0,并且我们可以得出结论:所有系数为1的1次函数增长率为0。
我们记f₁(n)=fⁿ(n)=n*2,然后f₁²(n)=f₁(f₁(n))=f₁(n*2)=n*4,f₁³(n)=f₁(f₁(f₁(n)))=f₁(n*4)=n*8...,
f₁ⁿ(n)=f₁(f₁(f₁(...f₁(f₁(n))...)))=n*2^n的增长率为2,
f₁ᶜ(n)=n*2^c的增长率仍然是1,可见任意系数大于1的1次函数增长率都是1。我们再考虑函数g(n)=n^2,很明显这个函数增长率介于1和2之间,由于函数f₁(n)迭代任意有限多次后仍然是1次函数,它的增长率小于幂函数,因而通常认为幂函数的增长率也是2。
记f₂(n)=f₁ⁿ(n)=n*2^n,f₂²(n)=f₂(f₂(n))=f₂(n*2^n)=n*2^n*2^(n*2^n)>(2^n)^2^n,当n足够大时,(2^n)^2^n>n^n。
同样,当n足够大时,有f₂ᶜ(n)>n^^c,因而所有的指数函数、有限层指数塔函数的增长率也都是2。
(从另一个角度,我们对n^3迭代n次得到n^3^n,如果幂函数增长率为2,那么n^3^n的增长率则是3了,因而幂函数的增长率应该认为是1更合适。)
由于同一增长率所涵盖的函数范围是很宽广的,所以我们在对函数进行迭代时也不用太“较真”。如果函数中自变量出现在多个参数位置,计算增长率时只需要对其中影响最大的参数进行迭代即可,如指数函数a(n)=n^n中,指数比底数对函数的影响更大,为了简便,可以只迭代指数:
aⁿ(n)=n^n^n^...^n^n=n^^n=n↑²n,可知迭代幂次函数的增长率为3,n^^^c的增长率也是3。
n↑³n=n^^^n的增长率为4,n↑ᶜn的增长率为c+1,n↑ⁿn的增长率为ω。
在函数n[n]n=n↑ⁿn中,对函数影响最大的不再是指数,而是描述箭头数量的参数,因而n[n+1]n=n↑ⁿ⁺¹n的增长率不是ω+1,n[n[n[...n[n[n]n]n...]n]n]n的增长率才是ω+1。
顺便说一下所谓的“无脑迭代”,“无脑迭代”是指反复对同一函数进行无休止的迭代,这种迭代方式效率极低,故得其名。
比如f(n)的增长率为α,f₁(n)=fⁿ(n)=f(f(f(...f(f(n))...)))的增长率为α+1,
f₁²(n)=f₁(f₁(n))=f₁(f(f(f(...f(f(n))...))))=f(f(f(...f(f(n))...)))——迭代f(f(f(...f(f(n))...)))+n次,这里的f(n)再迭代n次。
f₂(n)=f₁ⁿ(n)=f₁(f₁(f₁(...f₁(f₁(n))...)))=f(f(f(...f(f(n))...))),f₂(n)用f(n)迭代来描述的话就是:
f₂(n)=f(f(f(...f(f(n))...))),共迭代f(f(f(...f(f(n))...)))次(1),
(1)式中f(f(f(...f(f(n))...)))迭代f(f(f(...f(f(n))...)))次(2),
(2)式中f(f(f(...f(f(n))...)))迭代f(f(f(...f(f(n))...)))次(3),
......
如此迭代n层,可见,f₂(n)原本只需要对f₁(n)迭代n次即可得到,而对f(n)直接迭代则需要极其复杂的步骤才能得到。
迭代的瓶颈是极限,比如我们对增长率为α的f(n)迭代n次可得到增长率为α+1的f₁(n),对增长率为α+1的函数f₁(n)迭代n次可得到增长率为α+2的f₂(n),这样我们通过不停迭代,总是可以得到增长率更高的函数,但不论迭代多少次,最后得到的函数的增长率总会小于α+ω,这时我们就需要对参数进行对角化,这是达到和突破极限的手段。
函数n[c]n=n↑ᶜn的增长率为c+1,方括号里的数字(箭头个数)每增加1,增长率相应地也增加了1,但当箭头个数随着自变量趋于ω时,再增加箭头的个数就无济于事了。
令b[1,0]p=b[p]p,方括号里的1,0实质就是p进制的10,就像二进制的10等于2,十六进制中的10等于16一样,方括号里的1,0就等于方括号后面的指数p。这样,方括号里的箭头数量就被对角化了。
n[1,0]n=n[n]n的增长率为ω
由于n[1,0]n中,方括号里不再含有自变量n,因而再迭代时又只需要对指数进行迭代即可,即:
n[1,1]n=n[1,0]n[1,0]n[1,0]...n[1,0]n的增长率为ω+1,我们可以验算一遍:
n[1,1]3=n[1,0]n[1,0]n=n[1,0](n[n]n),此时,[1,0]后面的指数是n[n]n这个表达式,n[1,0](n[n]n)=n[n[n]n](n[n]n),约等于n[n[n]n]n,同样,n[1,1]4约等于n[n[n[n]n]n]n
n[1,1]n约等于n[n[n[...n[n[n]n]n...]n]n]n,增长率确实是ω+1
同样可知n[1,c]n的增长率为ω+c,然后我们再对角化一次:
n[2,0]n=n[1,n]n,它的增长率为ω2
n[3,0]n的增长率为ω3
n[1,0,0]n的增长率为ω^2
n[1,0,0,0]n的增长率为ω^3
这样我们轻易就得到一个极限增长率为ω^ω的数阵:
n[an,a[n-1],...a2,a1,a0]n的增长率为ω^n*an+ω^(n-1)*a[n-1]+...+ω^2*a2+ω*a1+a0


IP属地:湖南1楼2022-04-01 13:46回复
    函数每进行一次迭代,增长率+1
    某个常量变为自变量,相应的位置变为ω
    这么理解可以吗?


    来自Android客户端2楼2022-04-01 14:07
    收起回复
      通过ω进制数阵就也能解释为什么弱φ模式的极限是ψ(Ω^Ω)了,因为这相当于ψ(递归Ω进制)的极限


      IP属地:北京来自Android客户端3楼2022-04-01 15:25
      收起回复
        那么n[2,1]等于啥?


        IP属地:河北来自手机贴吧4楼2023-05-21 13:11
        收起回复