<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
math
標準庫提供了一些 常數如 int64
型別的最大值、float64
型別的最大值等,和常用的數學計算函數。
常用函數
函數 | 說明 |
---|---|
Abs(x float64) float64 | 傳入 x 引數,返回 x 的絕對值 |
Max(x, y float64) float64 | 傳入 x、y 引數,返回 x 與 y 中的最大值 |
Min(x, y float64) float64 | 傳入 x、y 引數,返回 x 和 y 中的最小值 |
Ceil(x float64) float64 | 傳入 x 引數,返回一個大於等於 x 的最小整數值,也就是向上取整 |
Ceil(x float64) float64 | 傳入 x 引數,返回一個小於等於 x 的最小整數值,也就是向下取整 |
Trunc(x float64) float64 | 傳入 x 引數,返回浮點數 x 的整數部分,使用 Floor 函數也能實現 |
Dim(x, y float64) float64 | 傳入 x、y 引數,返回 x-y 與 0 中最大的值 |
Mod(x, y float64) float64 | 對 x / y 進行取餘運算 x % y |
Pow(x, y float64) float64 | 計算 x 的 y 次冪 |
Sqrt(x float64) float64 | 對 x 開平方 |
Cbrt(x float64) float64 | 對 x 開立方 |
Modf(f float64) (int float64, frac float64) | 分別取出 f 的整數部分和小數部分 |
如果想了解更多函數介紹和使用,可以到 pkg.go.dev/math 進行檢視。
Abs(x float64) float64
:返回 x
的絕對值。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Abs(-3.14)) // 3.14 }
Max(x, y float64) float64
:返回 x
與 y
中的最大值。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Max(1.5, 2.5)) // 2.5 }
Min(x, y float64) float64
:返回 x
和 y
中的最小值。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Min(1.5, 2.5)) // 1.5 }
Ceil(x float64) float64
:返回一個大於等於 x
的最小整數值,也就是向上取整。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Ceil(1.4)) // 2 fmt.Println(math.Ceil(2)) // 2 }
Ceil(x float64) float64
:返回一個小於等於 x
的最小整數值,也就是向下取整。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Floor(1.4)) // 1 fmt.Println(math.Floor(1)) // 1 }
Trunc(x float64) float64
:返回浮點數 x
的整數部分,使用 Floor
函數也能實現。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Trunc(1.4)) // 1 }
Dim(x, y float64) float64
:返回 x-y
與 0
中最大的值。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Dim(2.0, 1.0)) // 1 fmt.Println(math.Dim(1.0, 2.0)) // 0 }
Mod(x, y float64) float64
:對 x / y
進行取餘運算 x % y
。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Mod(5.0, 3.0)) // 3 fmt.Println(math.Mod(3.0, 3.0)) // 0 }
Pow(x, y float64) float64
:計算 x
的 y
次冪。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Pow(2, 1)) // 2 fmt.Println(math.Pow(2, 5)) // 32 }
Sqrt(x float64) float64
:對 x
開平方。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Sqrt(64)) // 8 fmt.Println(math.Sqrt(16)) // 4 }
Cbrt(x float64) float64
:對 x
開立方。 範例:
import ( "fmt" "math" ) func main() { fmt.Println(math.Cbrt(64)) // 4 fmt.Println(math.Cbrt(8)) // 2 }
Modf(f float64) (int float64, frac float64)
:分別取出 f
的整數部分和小數部分。
int
引數,整數部分。frac
引數,小數部分。 範例:import ( "fmt" "math" ) func main() { integer, decimal := math.Modf(3.1415) fmt.Printf("整數部分:%.f 小數部分:%.4f", integer, decimal) // 整數部分:3 小數部分:0.1415 }
rand
標準庫提供了多個獲取不同型別亂數的函數。
常用函數
函數 | 說明 |
---|---|
Int() int | 返回一個 int 型別的非負的偽亂數 |
Intn(n int) int | 返回一個 0 到 n 中(不包括 n)的 int 型別的非負偽亂數 |
Int31() int32 | 返回一個 int32 型別的非負的偽亂數 |
Uint32() uint32 | 返回一個 uint32 型別的非負的偽亂數 |
Int31n(n int32) int32 | 返回一個 0 到 n 中(不包括 n)的 int32 型別的非負偽亂數 |
Int63() int64 | 返回一個 int64 型別的非負的偽亂數 |
Uint64() uint64 | 返回一個 uint64 型別的非負的偽亂數 |
Int63n(n int64) int64 | 返回一個 0 到 n 中(不包括 n)的 int64 型別的非負偽亂數 |
Float32() float32 | 返回一個 0.0 到 1.0 中(不包括 1.0)的 float32 型別的非負偽亂數 |
Float64() float64 | 返回一個 0.0 到 1.0 中(不包括 1.0)的 float64 型別的非負偽亂數 |
Seed(seed int64) | 設定隨機種子,使得每次獲取亂數的值都不一樣 |
如果想了解更多函數介紹和使用,可以到 pkg.go.dev/math/rand 進行檢視。
import ( "fmt" "math/rand" ) func main() { fmt.Println(rand.Int()) // 5577006791947779410 fmt.Println(rand.Intn(10)) // 7 fmt.Println(rand.Int31()) // 1427131847 fmt.Println(rand.Uint32()) // 1879968118 fmt.Println(rand.Int31n(10)) // 1 fmt.Println(rand.Int63()) // 6334824724549167320 fmt.Println(rand.Uint64()) // 9828766684487745566 fmt.Println(rand.Int63n(10)) // 8 fmt.Println(rand.Float32()) // 0.09696952 fmt.Println(rand.Float64()) // 0.30091186058528707 }
多次執行上述程式碼,發現獲取到的亂數都是一樣的,這是因為我們沒有設定隨機種子。可以通過 Seed
函數進行設定:
import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().Unix()) fmt.Println(rand.Intn(10)) }
使用 Seed
函數設定隨機種子,將當前時間的秒數作為引數。後續多次獲取亂數的值將不會一直一樣。
本文介紹了標準庫 math
和 rand
的常用函數的用法,並通過例子進行說明。
math
庫裡雖說有最大值和最小值比較,但是形參型別必須是浮點型,如果我們想比較的是整型的最大最小值,就得自己封裝函數。
獲取亂數時,不要忘記設定隨機種子,否則多次獲取到的亂數將會是一樣的。
以上就是一文帶你瞭解Go語言標準庫math和rand的常用函數的詳細內容,更多關於Go語言math rand的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45