Saturday, 12 September 2026

Capturing growth rate in problem solving (1): motivation

This is a sketch of seminar I will deliver to undergraduate problem solvers, and I feel like this is a good chance to fill more advanced math content into my blog. I like going deep in small concepts, but bigger projects like this also brings much fun.

I will split into three parts as follows.

I. Motivation
II. Contest problems
III. More problems and generalization

Enjoy :)

*

1. Introduction

Why growth rate? We start with a very simple example.

Example 1. Consider the limit $\lim _{x\to \infty}\frac{2x^2-3x-2}{x^2+7x+100} = 2$.

Before the access to the $\varepsilon - \delta$ approach, students are taught to bound the function by simpler fractions with clear limit then apply squeezing. It's a torturing analytical workout and students often get lost in the process. 

Everyone knows clearly the answer is $2/1 = 2$, the problem is how do we reach there. Then we ask the question: why is that clear in the first place?

The answer is the order -- both are of order $x^2$. Once we divide by the order we have the limit

$\frac{2+o(1)}{1+o(1)} \to \frac{2}{1} = 2$.

The essence is to identify the order work around it. And the important takeaway of the seminar as to be laid below -- is to show that such thinking is widely applicable, far more than simple real analysis exercise.

To this end, let us recall a simple but important lemma, the polynomial dominance:

Lemma. Suppose $f(x), g(x)$ are polynomials of order $m,n$ with $m>n$, then there exists $L>0$ such that $|f(x)|>|g(x)|$ for all $|x|>L$. Call $f$ dominates $g$ (over applicable domain).

Proof. Exercise(!).

Every polynomial order is a distinct growth rate with a strict order. Actually the same applies to non-integer power although that is not our main focus today.

Think about a smooth function $f \in \mathbb{R}$. For each point $x\in \mathbb{R}$ we have a converging Taylor expansion $f(c) = \sum a_{n,c}(x-c)^n$ then we know $f(x)\approx a_m(x-c)^m$ around $x=c$ where $a_m$ is the lowest non-zero coefficient. The same applies when you look into the complex space where the poles and zeros are decided by the leading terms (both in positive negative powers) in the Laurent series.

Of course, one may extend the complex plane to the Riemann sphere (or by projective geometry in words of some geometers), one my find that infinity and behavior at infinity is merely zeros and poles at another point!

There are for sure more growth order than just polynomial. Exponential and log grwoth are the most typical one. Their growth rate is characterized by whatever quicker and slower than polynomial. 

Lemma. Let $a>1$. Then the exponential function $a^x$ dominates any polynomial and the log function $\log _a x$ is dominated by any (non-constant) polynomial over $x >0$.

Exponential curve is even more common in branches of mathematics, in particular on anything involving time. Since exponential functions of larger base also dominates that of lower base -- we actually get to know the growth rate by bounding such function.

Suppose we have an (eventually) increasing function on our hand. The growth rate has to be one of those -- log, polynomial, exponential (of course, sub-log and hyperexponential as well), and these growth rates are mutually exclusive. Then within the same category each subclasses -- bases of exponentials or order of polynomials (well logs of different bases are constant multiples of each other) -- are mutually exclusive in the sense that one always dominates another and forms a total order in it. Knowing the growth rate pretty much locks the behavior, and in some problems the functions themselves.

The aim of the seminar, is to appreciate how common growth order becomes a crucial piece of information that can be used, or acts as a motivation towards the solution of a problem. 

To start with, we lay down even more examples where undergraduate results uses growth rate as a centerpiece of the argument.

2. Classic examples

Let us look at some relatively accessible examples. We emphasize that the growth rate often provide crucial information.

First, we look at more results in complex analysis.

Example 2. (Liouville) Suppose $f$ is an entire function with $|f(z)|\leq M|z|^k$ for some $M>0$ and non-negative integer $k$, then $f$ is a polynomial of degree at most $k$.

Proof. Cauchy's integral formula.

In other words, any non-polynomial entire function admits a path $\gamma$ such that $|f(\gamma(t))|$ is not bounded by polynomials.

Example 3. (Rouché) Let $f,g$ be holomorphic over closed region $K$. If $|f(z)|>|g(z)|$ for all $z\in \partial K$ then $f$ and $f+g$ has equal number of zeros in $K$.

Proof. Argument principle. Note that it also extends to poles counting (!).

The inequality $|f(z)|>|g(z)|$ does not necessarily means $g$ is dominated by $f$ even just over $K$ but classic examples involve a higher degree polynomial and a lower degree polynomial, showing how the dominating term dictates the behavior of the function.

Example 4. (Ergodic Markov chain) Denote the correspondant matrix of the chain $A$, then $A$ has eigenvalue $\lambda _1 = 1 \geq |\lambda _2| \geq |\lambda _3|\ldots$. Furthermore, the error term (the $L_{\infty}$ distance) from the terminal state $v_{\infty}$ has decay rate dominated by the second eigenvalue. More precisely for $v_k$ the $k$-th state vector satisfies $\| v_k-v_{\infty}\|_{\infty} = O(|\lambda _2|^k)$.

Proof. Perron-Frobenius. This second eigenvalue characterization is quite widely used in fields like harmonic analysis. Note that we implicitly infer the chain to be finite reversible so that we don't run into non-trivial Jordan blocks.

Example 5. (Liouville approximation) If $x$ is an irrational algebraic number of order $n$ then there exists constant $c_x>0$ such that $|x-\frac{p}{q}| > c_xq^{-n}$ for all integers $p,q$ with $q>0$.

Proof. Elementary number theory. I feel like I have been applying tricks avoiding proofs too much here. Perhaps left as exercise.

This time, the function or concern is the approximability -- we don't necessarily need a continuous function to talk about growth rate. The result basically says approximability is bounded below be the decaying factor $q^{-n}$.

We conclude our introduction with a heavyweight classic.

Example 6. (PNT) $\pi (x) \sim x/\ln x$.

Proof. By wikipedia...joking but seriously the analysis details are so delicate despite the simple idea.

This result is not proving by capturing the growth rate. Instead, the result itself is about growth rate and it becomes the pillar of analytical number theory, one among the most important branch in modern mathematics. Much of the problems here starts from a counting function that turns out to be much, much more fundamental...like the Riemann hypothesis which is also a growth rate problem in nature.

But don't worry, we are not here trying to prove anything big. We just demonstrated how common such concept is, and we try to equip such mindset to facilitate problem solving.

(Cont.)

Wednesday, 2 September 2026

世界觀設定與Meta演化論(下): 現實歷史中的遺留代碼

一代版本一代神,這是任何遊戲的真理。從WoW和FF的版本改動、到DOTA和格鬥遊戲的微調、到遊戲卡的官方禁卡表,每一個改動都可以顛覆現有環境,把舊有的meta毀掉,把新的meta給捧出來。

這種改meta的版本改動在現實有可能發生嗎?

如果說<<設定>>中四個時代對應的是古巴比倫-維多利亞時代-近未來-???的話,這個時間尺度顯然超出了現實人類史的可比較範圍。所以如果答案是有的話,我們需要把格局拉大一點才行。

比如地球的生物演化史。

這當然不是我個人的見解,把地球環境分割成不同的版本這件事某Youtuber早就在天天做了。更妙的是地球Online的版本除了有不斷變化的meta以外,還能天然滿足「刪檔重置」這個要素。想想也是,這種毀天滅地的事也有大自然(literally)能幹得出來了。隨便舉幾個大版本的例子好了:

比如說太古宙的時期,姑且叫2.x版本吧。這是一個充滿甲烷和氨氣的硬核世界,可存活地帶僅限火山口或深海熱泉這些新手村,出了其他地方就是死。當時沒有氧氣,所以meta非常明確:靠化學能生活的厭氧生物。本來如果這些玩家們一直相安無事,沒想到藍綠菌點出了光合作用這破壞遊戲平衡的技能,最終導致大氧化事件這個版本更新。

從大氧化事件開始又經過好幾個大版本,來到石炭紀和二疊紀先叫版本5.x好了。此時大氣環境跟之前截然不同,來到了30%以上的歷史新高。伴隨高熱和潮濕環境下地球被蕨類植物覆蓋。這時的meta是巨大化--只要氧氣夠濃,普通的呼吸也能撐起巨大的身軀。這次在陸上稱霸的竟然是昆蟲,蠍子和蜻蜓可以長至接近一米。恐龍的祖先也已經出現,但這時牠們也只是比巨蟲大一點點的大蜥蜴罷了。如果說終結2.x的改版是玩家自己造成的話,那這次的改版就是官方親自動手了。2.5億年前西伯利亞超級火山一聲巨響,各類族群紛紛被踢下線再也沒法登入。

在經典的5.x恐龍版本被官方再次出手用隕石強制終結後,地球再次迎來6.x的全新版本。氣候劇烈波動,在溫暖和冰凍之間來回擺盪,中間還有新仙女木時期等限時活動。本來就淘汰得八八九九的大型動物和冷血動物紛紛投降,本來只能在底層苟活的哺乳動物終於迎來了出頭天!當中有一支名為人類的種族特別突出,遊戲正以前所未有的速度挑戰官方的拔線容忍度……

然後我們悲哀地發現,所謂大版本的變動都是極漫長時間裡的偶然事件,再不濟是太古宙那種幾億年來的厚積薄發。就算所謂的小版本更新也不是開玩笑的。比如說……寒武紀實裝眼睛、盤古大陸拆分伺服器、還有顯花植物的實裝,這些改變不會徹底改變環境,卻把生態位換了一遍。我們人類迄今所預見的氣候變化,充其量只是引發一次限時活動吧。

……以上。

當我們把虛構作品的設定迭代和現實作出比較時,我們會發現小說的改版往往是徹底砍掉重練,但地球Online的更新雖然會強制更新地圖和氣候,生命卻保留了上一版的「遺留代碼」。環境是全新的,但生命卻是帶著上一個版本的破爛程式碼,硬著頭皮去適應新的伺服器規則。鯨魚的身體裡至今還藏著退化的後腿骨,那是曾經陸地哺乳類Meta的殘留;人類的胚胎早期會出現腮裂,DNA裡甚至塞滿了遠古病毒留下來的基因碎片。大自然的演化從來不會從零開始寫代碼,遇到Bug就打個補丁,只要程式還能跑(能繁衍)就千萬別去動它,結果就是造就了我們這些充滿冗餘代碼的「縫合怪」。

這種靠著「基因打補丁」來適應環境的龜速演化,直到人類這個開掛玩家崛起才發生了質變。我們不再等待官方幾百萬年一次的版本更新,而是利用智慧、工具與社會結構,自己手動切換文明的Meta。

如果你把時間尺度縮短,把目光聚焦在人類文明史上,你會驚訝地發現,現實社會的演變邏輯居然跟<<設定>>中從「餘燼神代」到「魔藥時代」的演化如出一轍!

在人類文明的早期,地球就像是一個剛開服、資源滿溢的伺服器。那是一個現實版的「餘燼神代」。當時的核心資源獲取門檻極低:河床裡隨便就能撿到高純度的狗頭金,砍伐幾十人合抱的千年神木來建宮殿,在近海就能輕易捕殺巨大的鯨魚取油。這些「低垂的果實」就像是神代的高純度「火種」,古人不需要懂什麼高深的化學萃取或重工業,只要運氣好撿到火種,就能輕易建立起龐大的財富、奇蹟與帝國。

但正如同小說中神明對火種的揮霍,人類對這些不可再生的原始資源也進行了不可逆的消耗。復活島的島民把棕櫚樹砍光後發現自己再也找不到安居之所,明朝的初代紫禁城焚毀後再也找不到同等級的千年古木重建;為了燃油把鯨魚海豹屠光、為了口腹之慾把曾經沿海隨便就能撿到的鮑魚生蠔吃成珍品。當高純度的火種被揮霍一空,人們悲哀地發現已經沒有純粹的「火種」可以白嫖了,於是我們被迫進入了現實版的「魔藥時代」。

因為失去了最直觀的資源,現代人類只能透過極度複雜的「配方」——也就是現代科學與重工業——去榨取環境中純度極低的殘渣。當河水再也濾不出黃金,我們只能用幾十噸的貧礦經過重重程序煉出幾克黃金;當「白色黃金」鳥糞枯竭,我們只能尋找化學合成氨的道路。力量不再是撿來就用的原石,而是被少數掌握了技術專利(配方)與生產資料的財閥與國家所壟斷。這不就是徹頭徹尾的魔藥時代社會結構嗎?至於為何現代社會走出了魔藥時代那種維多利亞式社會結構,那又是另一回事了。

總之,把這個當成一種世界觀吧。用設定的方式去理解世界,雖然不可避免地會將複雜的現實給降維簡化——畢竟真正的現實充滿了隨機的Bug、無法預測的變量,以及無數拖泥帶水的舊代碼殘留,它遠比任何精妙的小說設定都要混亂且不講道理。但這並不妨礙我們用這種框架去拆解歷史。正是透過尋找每個時代的「版本答案」與「底層邏輯」,我們才能從龐雜的歷史碎片中,看清資源、權力與生存環境是如何互相博弈與重塑的。或許,當我們習慣了用看透Meta更迭的視角去審視這個世界,在面對未來科技爆發或環境劇變的下一次「版本更新」時,我們也能提早猜出,誰會是被官方強制封號的舊時代霸主,而誰又會是下一個適應全新機制的版本之子。

等等,站在2026的我們不已經身處一個「版本更新」之中嗎XD

題外話,火紋的萬紫千紅要出了。劇透中時值1449年,但這並非帝國曆,而且幾乎肯定是IS有意誤導。這是一個除了緣毛以外還有其他「神明」的時代,有地底科技(還有美式居合)的時代。這是地表、屬於她的子民(還是說這片和風花主大陸Fodlan相鄰的大陸其實是原住民?)的年代嗎?既然已經有地底科技,也就說地底人已經被趕到地底了?如果還能在外的大陸冒頭,那這打壓其實也就還好?看建築和(地底科技以外的)似乎比風花還要原始,加上大人形態的綠毛和種種線索,可以確定是風花前的時代嗎?真的可以嗎?還是說一切都是IS的煙霧彈?