這篇文章是此系列中的第一篇,在這個系列中,我將介紹
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,寫在...
數學與程式設計
好些人來信問我,要成為乙個好的程式設計師,數學基礎要達到什麼樣的程度?十八年前,當我成為大學計算機系新生的時候,也為同樣的問題所困擾。面對學數學,物理等學科的同學,我感到自卑。經常有人說那些專業的知識更加精華一些,難度更高一些,那些專業的人畢業之後如果做程式設計工作,水平其實比計算機系畢業的還要高。...