首页 > 其他分享 >Go语言中的数学计算

Go语言中的数学计算

时间:2023-10-13 10:12:44浏览次数:35  
标签:rand arr 语言 fmt Println Go 100 数学计算 math

数学常量

math.E	//自然对数的底,2.718281828459045
math.Pi	//圆周率,3.141592653589793
math.Phi	//黄金分割,长/短,1.618033988749895
math.MaxInt	//9223372036854775807
uint64(math.MaxUint)	//得先把MaxUint转成uint64才能输出,18446744073709551615
math.MaxFloat64	//1.7976931348623157e+308
math.SmallestNonzeroFloat64	//最小的非0且正的浮点数,5e-324

NaN(Not a Number)

f := math.NaN()
math.IsNaN(f)

常用函数

math.Ceil(1.1)	//向上取整,2
math.Floor(1.9)	//向下取整,1。 math.Floor(-1.9)=-2
math.Trunc(1.9)	//取整数部分,1
math.Modf(2.5)	//返回整数部分和小数部分,2  0.5
math.Abs(-2.6)	//绝对值,2.6
math.Max(4, 8)	//取二者的较大者,8
math.Min(4, 8)	//取二者的较小者,4
math.Mod(6.5, 3.5)	//取模,可以是浮点数,3 
math.Sqrt(9)		//开平方,3
math.Cbrt(9)		//开三次方,2.08008

三角函数

math.Sin(1)
math.Cos(1)
math.Tan(1)
math.Tanh(1)

对数和指数

math.Log(5)	//自然对数,1.60943
math.Log1p(4)	//等价于Log(1+p),确保结果为正数,1.60943
math.Log10(100)	//以10为底数,取对数,2
math.Log2(8)	//以2为底数,取对数,3  
//其他任意数的对数可以使用math.Log()来求,例如log以2.5为底数,取6的对数  用math.Log(6)/math.Log(2.5)
math.Pow(3, 2)	//x^y,9
math.Pow10(2)	//10^x,100
math.Exp(2)	//e^x,7.389

随机数生成器

//创建一个Rand
source := rand.NewSource(1) //seed相同的情况下,随机数生成器产生的数列是相同的
rander := rand.New(source)
for i := 0; i < 10; i++ {
    fmt.Printf("%d ", rander.Intn(100))
}
fmt.Println()
source.Seed(1) //必须重置一下Seed
rander2 := rand.New(source)
for i := 0; i < 10; i++ {
    fmt.Printf("%d ", rander2.Intn(100))
}
fmt.Println()

//使用全局Rand
rand.Seed(1)                //如果对两次运行没有一致性要求,可以不设seed
fmt.Println(rand.Int())     //随机生成一个整数
fmt.Println(rand.Float32()) //随机生成一个浮点数
fmt.Println(rand.Intn(100)) //100以内的随机整数,[0,100)
fmt.Println(rand.Perm(100)) //把[0,100)上的整数随机打乱
arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
rand.Shuffle(len(arr), func(i, j int) { //随机打乱一个给定的slice
    arr[i], arr[j] = arr[j], arr[i]
})
fmt.Println(arr)

标签:rand,arr,语言,fmt,Println,Go,100,数学计算,math
From: https://www.cnblogs.com/guangdelw/p/17761271.html

相关文章

  • Go语言中的性能测试
    单元测试测试单元的结果是否符合预期//go_test.goimport( "fmt" "testing")funcAdd()int{ fmt.Println("AAAAAAAAAAAAAA") return5}funcSub()int{ fmt.Println("SSSSSSSSSSSSSSSS") return5}funcTestFun1(t*testing.T){......
  • DevEco Hvigor高效编译,构建过程新秘籍
     作者:Lewei,华为终端BG编译构建技术专家DevEco Hvigor是使用TypeScript语言开发的全新轻量化的任务调度工具,针对HarmonyOS应用提供了一系列编译构建任务,支持将HarmonyOS应用编译构建出对应的产物包。作为一款HarmonyOS应用编译构建任务流工具,DevEco Hvigor具备许多可以提升......
  • Django中关于路由匹配的源码分析
    1:关于路由#django中,路由的写法有很多,从最早一点几版本的url(xxxxx)的形式到后面re_path(xxxx),以及参考flask的path(xxxx)的格式。#无论是哪种,实现的功能本质上就是,匹配url和对应的额视图函数,换言之,就是,找到用户访问的url对应的视图函数,并且执行它。#下面是urls.p......
  • 汇编实战!手把手教你从“计算器”入门汇编语言
    基于汇编语言的简单整数计算器设计与实现 (此代码仅供学习使用,请勿用作其他用途)摘要本论文介绍了一款使用汇编语言编写的简单整数计算器程序,该程序支持基本的四则运算操作,并能处理包含括号的数学表达式。本文通过分析程序的代码结构,宏定义、数据段、子程序以及关键功能的实......
  • 学习C语言心得--传址调用
    传址调用#include<stdio.h>voidswep(int*x,int*y){ intp=0; p=*x; *x=*y; *y=p;}intmain(){ inta=10; intb=20; printf("交换前:%d%d",a,b); swep(&a,&b); printf("交换后:%d%d",a,b); return0;}运行结果:......
  • C语言函数和指针的关系之三(完结)
     指针保存函数的地址(函数指针)1、函数指针的概念:咱们定义的函数,在运行程序的时候,会将函数的指令加载到内存的代码段。所以函数也有起始地址。c语言规定:函数的名字就是函数的首地址,即函数的入口地址咱们就可以定义一个指针变量,来存放函数的地址。这个指针变量就是函数指针变量......
  • Go语言模块管理:GO111MODULE的含义
    在cmd中使用goenv命令可以查看到我们的GOPATH环境变量。其目录结构为:bin:存放代码编译后的二进制文件pkg:存放编译后的库文件src:存放自己编写的Go语言代码文件在Go1.11后新增了modules特性,模块是相关Go包的集合。如果在cmd中执行以下命令将GO111MODULE变量的值设为on:go......
  • cmake语言中获取除去某文件的其他所有文件
    title:aliases:tags:-cmakecategory:-方法stars:url:creation-time:2023-10-1214:54modification-time:2023-10-1215:04:12场景对整个项目进行了编译选项设置,把所有警告当做了错误。但是使用一些短小的开源库时,开发者写的并不是很严谨。所以希望这些库......
  • django 结合rpc服务传输
    1概述2基础依赖3定义服务和消息4生成gRPC代码5创建服务和客户端服务6启动服务端和客户端7Django中集成gRPC8安全认证方面9健康检测10相关文档生成概述gRPC(gRPCRemoteProcedureCall)是一种高性能、跨语言的远程过程调用(RPC)框架,由Google开发并......
  • CF264B Good Sequences 题解
    GoodSequences状态很显然,设\(f[i]\)表示位置\(i\)的最长长度。关键是转移,暴力转移是\(O(n^2)\)的,我们必须找到一个更优秀的转移。因为一个数的质因子数量是\(O(\logn)\)的,而只有和这个数具有相同质因子的数是可以转移的;因此我们可以对于每个质数\(p\),设一个\(mx_p......