F 與數學 數字運算與F PowerPack

2022-07-04 21:42:16 字數 2672 閱讀 2424

這篇文章是此系列中的第一篇,在這個系列中,我將介紹

f#中的一些特性,如對數字運算有幫助的特性以及一些來自

f# powerpack

庫的一些功能。大部分內容最初都是為位於

msdn

上名為「

f#中的數字運算」的章節(我之前發布的)所寫的,但是後來,我們決定把重點放到使用第三方語言庫的

f#程式設計上

,這些庫提供了更多有效的實現以及更豐富的標準數字運算函式集合

,通常在實現機器智慧型學習和概率演算法或者進行統計分析時

,這些函式集合會被應用到。如果你對這個話題感興趣

,那麼本文的最後部分給出了

msdn

儘管如此

,f# powerpack

仍然包含了一些有用的功能

.它包含兩種附加的數字型別以及乙個與

f#完美整合的矩陣實現

.這個系列同時也演示了如何使用

f# 語言的一些特性寫出優雅的數字運算**

.特別的

,我們將使用以下的方面

: 在寫數字**時,上面提到的功能僅僅是所有有用的功能中的小部分,還有其他很多沒提到的。常用的

f# 開發風格是使用互動工具,型別安全從而避免常見的錯誤,測試單元以及

f#中的表示式使得

f#成為編寫數字**的乙個很好的工具。更多的資訊,

請參看msdn

上的文章用

f#編寫簡潔地正確地數字計算**

。數字計算與

f# powerpack

如果你正在查詢一些關於其他

powerpack

元件的資訊,那麼,

daniel mohl

寫過這樣的乙個系列文章——它覆蓋了數字型別和模組(

第一部分

),非同步擴充套件(

第二部分

),附加集合類(

第三部分

),以及詞法,句法分析和

si單位(

第四部分

)。在這個系列中,我們會看到

f# powerpack

語言庫中提供的大部分數字運算功能。

下面的列表展示了即將發布的系列文章:

powerpack

庫提供了兩種附加的數字型別。型別

bigrational

代表了任意的精確的實數,

complex

則代表了複數。這篇文章簡單的描述了這兩種型別。

.net2.0

同時也提供了任意大小的整數(在

.net4.0

中,位於

system.numerics.dll

集合中)。

matrix

型別可以用來儲存浮點型數字。此型別支援很多常用的操作,如矩陣相乘,逐點相加以及一些其他運算。同樣的,也有乙個與此對應的范型,名為

matrix<』t>

,當矩陣中包含

int或

decimal

型資料時,我們可以用到此類。這篇文章展示了如何使用

matrix

型別來描述乙個使用

adjacency matrix

的影象,並且展示如何計算它的可達圖。

這篇循序漸進的指南展示了如何定義乙個數字型別,可以使用自定義的數字原型來實現以及能使用標準的操作符。這篇指南同樣使用了

f#powerpack

中的模組

globalassociations

,從而允許在

f# matrix<』t>

型別中使用自定義的型別作為元素。

這篇文章討論了寫范型**的兩種方式,此范型**用來處理任意乙個數字型別(如

float

和複數)。這第一種方式基於

f# 「靜態成員約束」,第二種則是基於

f# powerpack

中的模板

globalassociations

。在這篇文章中,我們會比較這兩種方式,並討論在什麼情況下那種方式更合適。

f# 中的數字計算(

msdn

)如上述提到的一樣,

f# powerpack

只提供了矩陣的基本實現,它並不適用於那些高效的矩陣相乘任務。該庫並沒有實現任何更高階的運算操作,如矩陣分解,也不支援概率分布或統計分析。

如果你對編寫高效的

f# 數字**感興趣,那麼建議您使用第三方語言庫(例如開源的

math.net numerics

),這些第三方庫提供了更高效的實現,以及更多的功能。

msdn

上的一片名為

introduction to numerical computing in f#

math.net numerics

旨在成為

.net

框架下開源數學庫的乙個標準。它的發布是經過了

mit的許可,因此它可以被使用在商業或者非商業的專案中,也可以修改與重分布它。這篇指南給出了如何使用此庫中各種元件的一些介紹。

microsoft sho

是乙個支援線性代數,優化與視覺化的數字計算平台。

這篇文章介紹了

sho以及展示了如何從

f#中呼叫它的

.net

庫。f# powerpack

為向量與矩陣提供了相應的類,

f# mathprovider

在這些類上支援線性代數各種操作。這篇文章給出了這兩個庫的介紹。引用&

鏈結

201數字範圍按位與(位移 數學 位運算)

1 題目描述 給定範圍 m,n 其中 0 m n 2147483647,返回此範圍內所有數字的按位與 包含 m,n 兩端點 2 示例 輸入 5,7 輸出 4 3 題解 解法一 基本思想 位移,不斷右移查詢公共字首,將兩個數字向右移動,直到數字相等,即數字被縮減為它們的公共字首。然後,通過將公共字首向...

資料型別與數字運算

1.整數型別 2.浮點型別 小數 3.字元型 4.boolean型別 1.強制轉換 高容量轉低容量,資料型別 變數名 1.例項變數 從屬於物件,寫在類中 public class main1 2.區域性變數 寫在方法中 public class main1 3.類變數 資料型別前加static,寫在...

數學與程式設計

好些人來信問我,要成為乙個好的程式設計師,數學基礎要達到什麼樣的程度?十八年前,當我成為大學計算機系新生的時候,也為同樣的問題所困擾。面對學數學,物理等學科的同學,我感到自卑。經常有人說那些專業的知識更加精華一些,難度更高一些,那些專業的人畢業之後如果做程式設計工作,水平其實比計算機系畢業的還要高。...