上一篇blog主要簡述了樹、二叉樹相關的定義和類型。
其中一個很重要、很基礎的概念就是節點的度。大家有沒有想過,為什么要用“度”作為子節點個數的量化單位呢?按理說,如果是子節點個數,用“子”或者“孩”豈不是更好理解?
那這里要想到,計算機整個體系實際上是一種舶來品,我們需要參照原體系中的定義來進行翻譯。所以,我找了一些關於樹相關的數據結構的出處,但這個“度”其實就是直白地用degree進行了翻譯。
是不是degree有一些什么特殊的含義,能夠用來表示近似子嗣的概念呢?於是我去查了degree的英文釋義,但沒有什么收獲,基本的含義都是表示“程度”。
在各種查詢之后,發現圖論中也有“度”這個概念。但與數據結構中樹用“度”來表示子節點個數不同,這里的“度”是用來表示節點所連接邊的條數,而在有向圖中,還有“入度”與“出度”的概念。仔細想想,如果把樹結構,連接各個點的邊,都從上到下設置為有向,那么數據結構中的“度”與有向圖中的“出度”就是相同的了。所以,查到這里我覺得兩者應該是同源的。
那么,圖論中為什么用度來定義相關的屬性呢?來源自哪里?只能繼續Google咯.. 在一篇介紹“有限元分析”中的基本概念時,我看到了一些熟悉的詞匯:鏈接
這里的node,element,degree,boundary都是圖論中的重要基礎概念。其中對於degree的表述這里用到了degree of freedom。雖然不確定有限元分析與圖論的准確關系,但是至少,兩者是非常緊密的。
看到這里,我好像有點明白了。節點處與外界相連的邊,其實就是這個節點能夠到其它節點的可能的路徑,邊越多,路越多,可能性就越多,說自由度更高也就能理解了。圖論中還有專門的主題討論節點這種自由度的分布問題。這里我就大膽臆測,圖論中的“度”,其實就是degree of freedom。
在樹這種結構中,接觸到度這個概念,還特意地要去強調,度指的是子節點的個數,不包含子節點的子節點在內。但是理解到了自由度這個層面上,也就不會有將子節點的邊數計算在內的想法了。
-----------------------------------------------------------------------
關於一些基礎的,很重要的概念追根溯源,我個人覺得還是很重要。本身如果你心存疑問,就說明多多少少,這種概念和自己的理解是有沖突的,有了沖突如果不去解決,那么我們會本能地把它排斥、遺忘。如果想要內化這些概念,我覺得只有找到它的根源。
很多人會覺得,這只是文字游戲,我們只需要了解真正技術的原理就好了。我認為這樣的觀點還是太功利了,如果說要想在計算機這個行業走得遠、走得穩、走得快樂,那我覺得只要是自己有疑問的地方,都要積極地去探索,而不單單是那些關鍵技術。正是這些探索伴隨着思考,才能給我們帶來真正的收獲感,同時讓我們對於一些概念、原理掌握地更好,可以說對於一些基礎性的知識,我們真的需要這份閑情逸致來慢慢地思考,才能夠達到真正的吸收和掌握。如果不去思考一些有趣的問題,單純背八股又有什么樂趣呢?