程式設計需要的數學思維

2021-07-25 18:43:53 字數 1528 閱讀 9089

程式設計所需要的數學思維,足夠抽象,但又需要落實到向量和矩陣的具體資料結構層次來實現各種程式。其中初級的模仿是仿照微積分的構建,通過對極限層次的無窮小量來遍歷疊加來構建高維的結構。然後我們可以構建邏輯的微積分,這是基於圖靈機的序列運算,本質上是對資訊的確定,是對不確定性的消減。序列的運算可以考慮數學歸納法的迭代和遞迴。而序列的不同表達模式的組合,序列的運算是自指結構。

週期的形成,如mod的求餘數。

機器碼式的基本運算低維的構建,人造神經元能夠進行比較模糊的運算,是對底層的序列根據一定的規則進行比較確定的狀態變換,並將其投影到外界(輸出),然後我們能夠根據其序列的變化來構建一定的邏輯等等層次的聯絡,從而能夠在不同物件之中提取高維的不變數,進行運算。其中我們需要使用分而治之和減而治之的思路來將複雜的問題分解為不同的模組,如遞迴。

我們能夠在抽象層次進行的思考可以降維表達為各種現實問題,因此各種對稱性、規律、結構、迴圈、相似性等等都是模式化的具體形式。

然後是我們需要的具體數學。即我們需要利用前人堅實的研究成果來做到具體的實現,即對公式的選擇性組合來形成解決問題的有用技巧,從而能夠對我們理想中醫學的各種層次的資料進行有意義的處理,並且得出的結果能夠對實際的**起到良好的指導作用。

我們是不是需要新的資料結構來表示具體的各種生化指標,還是說原理的向量和陣列就足夠表示?然後如何在這個基礎上進行有效的運算,我們應該以矩陣的乘積還是圖論的各種拓撲性質乃至網路的各種性質來表示,從而與巨集觀的病理生理構建一定的對映關係?在機體這個可以投影為無限維的空間/網路中,我們的計算是通過對各種統計量的分析處理,還是可以參考其他的數學分支如數論?我們一向很欣賞的概率方法能夠對序列的基本狀態的改變構建一定的關係?

畢竟我們構建了這樣乙個無所不包的模型,然後就是考慮具體的實現,這需要用到大規模的前人的工作。

以醫學為導向的數學模型的構建必須極為依靠大規模資料的收集和統計分析,不僅僅是中心極限定理和大數定律所揭示的高維不動點,還有我們各種計算的模糊性質是網路模型的必要,這是對自然選擇的乙個模擬和致敬。這種大規模的運算是求高維量,分布。而可以等價於乙個個迴圈求解的遞迴問題。

我們需要具體化我們的模型,以簡單的規則和序列狀態變化來指代大規模的運算,我們一般計算是基於特殊序列的特定路徑的構建,即一般的臨床經驗,如同blast演算法的動態規劃。理論上我們能夠以順序、分支、迴圈語句來構建問題的求解思路,我們需要有選擇地形成一定的遞迴迴圈結構,利用數學歸納法的傳遞性來做簡單的運算逼近高維的運算結果,如同微積分對不同層次的函式的運算。

二項式定理是一種組合的關係連線,可以構建一定的等價關係。

母函式,對序列的處理,表示無限序列。

我們希望的網路大規模運算固然是需要精確的結果,但為了計算的空間和時間複雜度有所降低,我們可以考慮使用近似求解,即以一定誤差的理想曲線來逼近真實情況。

本質上,我們的程式設計在數學的意義是構造乙個函式,只要其能夠實現一定的輸入和輸出的對應關係,即我們所認為的功能。而不同維度的函式可能就具有不同的解釋能力:第谷一開始收集的行星運動資料是大規模的,而克卜勒總結出這些資料的模式即克卜勒三大定律,而牛頓則更進一步地抽象出二體運動的微分方程,一百多年後的哈密頓又總結出哈密頓體系--這個過程是特定函式解釋更廣闊世界的規律的過程。當然,具體的構造就是各種基本工具的組合了。

數學思維和程式設計思維

1 程式設計沒有數學基礎不行 2 但懂數學不等於懂程式設計 舉乙個例子 求1 2 3 4 99 100的和。數學解法通常是 1 1 100 100 2 5500 2 小學生的解法 1 2 3 3 3 6 這樣累算下去。程式設計解法呢?跟數學解法2相同,如下 static void main stri...

軟體程式設計與數學思維

軟體程式設計與數學思維 張水坤 大眾科學 科學研究與實踐 2007年第08期 摘要 近年來,學科的高速發展已經明確地反映出這樣乙個特點 學科基礎研究和技術開發越來越多地同數學建立更為緊密的聯絡,對各種數學工具的使用不僅越來越廣泛,而且越來越深入。要掌握好軟體程式設計,數學思維是非常重要的。先討論軟體...

k Amazing Numbers(數學 思維)

給定乙個序列,統計這個序列長度為1 n長度的連續子串行的分別公共最小值,不存在輸出 1。首先統計相同的數在序列中的最大間隔,包括此數對序列頭,序列尾的間隔 利用map記錄此數字上一次出現的index下標即可 此間隔就是能取到這個數字為貢獻的最小序列長度。然後對於每個數字能做出貢獻的最小代價長度進行更...