數(shù)學(xué)思維 計(jì)算機(jī)編程算法和數(shù)學(xué)有什么關(guān)系?
計(jì)算機(jī)編程算法和數(shù)學(xué)有什么關(guān)系?數(shù)學(xué)對(duì)于計(jì)算機(jī)算法編程非常重要。我將主要從以下兩個(gè)方面來(lái)解釋為什么它如此重要數(shù)學(xué)和算法編程需要很強(qiáng)的邏輯思維能力。程序代碼的邏輯結(jié)構(gòu)、連接方式和處理方式需要較強(qiáng)的邏輯思
計(jì)算機(jī)編程算法和數(shù)學(xué)有什么關(guān)系?
數(shù)學(xué)對(duì)于計(jì)算機(jī)算法編程非常重要。我將主要從以下兩個(gè)方面來(lái)解釋為什么它如此重要
數(shù)學(xué)和算法編程需要很強(qiáng)的邏輯思維能力。程序代碼的邏輯結(jié)構(gòu)、連接方式和處理方式需要較強(qiáng)的邏輯思維能力。如果你學(xué)好數(shù)學(xué),有很強(qiáng)的邏輯思維能力,你通常會(huì)對(duì)算法編程有更深的理解。
這應(yīng)該是為什么數(shù)學(xué)和算法編程更相關(guān)的一個(gè)重要原因。無(wú)論是計(jì)算機(jī)的底層還是底層,數(shù)學(xué)知識(shí)都處處體現(xiàn)。例如,計(jì)算機(jī)底層的二進(jìn)制、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的梯度求導(dǎo)、SVD分解、張量分解、PCA特征值、優(yōu)化問(wèn)題、密碼學(xué)的大數(shù)分解、概率圖模型等都與數(shù)學(xué)有著密切的關(guān)系。我舉兩個(gè)例子來(lái)實(shí)現(xiàn)
代碼實(shí)現(xiàn)如下
代碼比(float)(1.0/sqrt(x))快4倍,計(jì)算性能有了質(zhì)的飛躍。為此,專(zhuān)門(mén)有一篇論文《快速平方根逆》來(lái)解釋這段代碼的數(shù)學(xué)原理。感興趣的同學(xué)可以找這篇文章學(xué)習(xí)。
如果不直接使用數(shù)學(xué)知識(shí)和搜索,時(shí)間復(fù)雜度為O(n),效率較低,很難按照目前的計(jì)算機(jī)水平進(jìn)行計(jì)算。如果我們知道Brahmagupta–Fibonacci恒等式、Pollard-Rho分解法、二次同余方程的解、歐氏除法等數(shù)學(xué)知識(shí),那么求解這個(gè)問(wèn)題的時(shí)間復(fù)雜度就大大降低,結(jié)果保證在0.2秒之內(nèi)。
如果工作是算法崗位,數(shù)學(xué)更重要,因?yàn)闄C(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、NLP等方向的基本原理基本上都離不開(kāi)數(shù)學(xué)。
泛型編程是什么?
通用編程允許您編寫(xiě)完全通用和可重用的算法,這些算法與為特定數(shù)據(jù)類(lèi)型設(shè)計(jì)的算法一樣高效。STL是泛型編程的代表作,是一種高效、通用、可互操作的軟件構(gòu)件。所謂泛化是指它可以對(duì)多種數(shù)據(jù)類(lèi)型進(jìn)行操作,這與模板類(lèi)似。STL是巨大的,可以擴(kuò)展。它包含了許多計(jì)算機(jī)的基本算法和數(shù)據(jù)結(jié)構(gòu),并將算法與數(shù)據(jù)結(jié)構(gòu)完全分離。該算法是通用的,不與任何特定的數(shù)據(jù)結(jié)構(gòu)或?qū)ο箢?lèi)型相關(guān)聯(lián)。STL是一個(gè)基于迭代器和容器的通用算法庫(kù)。容器的存在使得這些算法具有可操作性。STL包括各種通用算法、迭代器、容器和函數(shù)對(duì)象。STL不僅僅是有用組件的集合,它是一種形式化的、有組織的體系結(jié)構(gòu),用來(lái)描述軟件組件的抽象需求。
編程對(duì)數(shù)學(xué)有幫助嗎?
看完下面的答案,我覺(jué)得大家對(duì)這個(gè)問(wèn)題的理解都很狹隘。
“編程對(duì)數(shù)學(xué)有幫助嗎?”--我認(rèn)為這個(gè)問(wèn)題包含兩個(gè)方面:
1。編程能解決數(shù)學(xué)不能解決的問(wèn)題嗎?
這個(gè)問(wèn)題的答案是肯定的。
讓我舉兩個(gè)例子:
(1)四色定理:這個(gè)命題最早是由英國(guó)數(shù)學(xué)家弗朗西斯·古德里在1852年提出的:“我們能用四種顏色給所有的地圖染色嗎?”。一百多年后,無(wú)數(shù)數(shù)學(xué)家為之奮斗,但他們從未提出過(guò)純數(shù)學(xué)形式的正確證明。直到1976年,數(shù)學(xué)家Kenneth Appel和Wolfgang Haken在計(jì)算機(jī)的幫助下第一次得到了完整的證明,四色問(wèn)題最終成為四色定理。這也是計(jì)算機(jī)證明的第一個(gè)定理。
(2)實(shí)時(shí)彈道、核反應(yīng)過(guò)程等:計(jì)算機(jī)發(fā)明的初衷是解決軍備競(jìng)賽中的實(shí)時(shí)彈道計(jì)算和核反應(yīng)相關(guān)過(guò)程計(jì)算,涉及到大量微分方程的求解。實(shí)際上,用純數(shù)學(xué)方法求解微分方程所占的比例很小。為了求解一般微分方程,通常的方法是對(duì)其進(jìn)行離散,并將離散結(jié)果作為計(jì)算機(jī)的輸入,通過(guò)相應(yīng)的數(shù)值計(jì)算程序進(jìn)行逼近。
此外,天氣預(yù)報(bào)和其他涉及非線性、復(fù)雜性甚至混沌的場(chǎng)景都是計(jì)算機(jī)可以幫助純數(shù)學(xué)的地方。
2. 編程有助于提高數(shù)學(xué)水平嗎?
編程實(shí)際上使用“計(jì)算思維”,這與純數(shù)學(xué)的“數(shù)學(xué)思維”不同。
“計(jì)算思維”更注重形式化和自動(dòng)化。形式化和自動(dòng)化與建模相對(duì)應(yīng)。這也客觀上決定了編程可以鍛煉建模能力,這是應(yīng)用數(shù)學(xué)中一項(xiàng)非常重要的技能。
邏輯思維能力是一切科學(xué)和工程思維的基礎(chǔ),編程并不是提高這一技能的唯一途徑,客觀地說(shuō),純數(shù)學(xué)研究對(duì)邏輯思維能力的培養(yǎng)強(qiáng)度遠(yuǎn)遠(yuǎn)高于編程。