golang点类圆类求pi值

go 复制代码
package Shape

import "math"

type Point struct{
	X float64
	Y float64
}

func (point *Point)GetDistance(other *Point) float64{
	return  math.Sqrt(math.Pow((point.X-other.X),2)+math.Pow((point.Y-other.Y),2))
}
go 复制代码
package Circle

import "awesomeProject/Shape"

type Circle struct {
	Heart  Shape.Point
	Radius float64
}

func (circle *Circle)IsPointInCircle(point *Shape.Point) bool{
	return  circle.Heart.GetDistance(point) <= circle.Radius
}
go 复制代码
package main

import (
	"awesomeProject/Circle"
	"awesomeProject/Shape"
	"fmt"
	"math/rand"
	"time"
)

const total = 1000000
func main() {
	point := Shape.Point{1, 1}
	circle := Circle.Circle{point, 1}
	rand.Seed(time.Now().UnixNano())

	count := 0
	for i := 0; i < total;i++{
		x := rand.Float64()*2
		y := rand.Float64()*2
		pointTmp := Shape.Point{x, y}
		if(circle.IsPointInCircle(&pointTmp)){
			count++
		}
	}
	fmt.Println(float64(count * 4.0) / total)
}

go.mod

复制代码
module awesomeProject

go 1.12
相关推荐
boonya2 小时前
一文读懂MCP:AI连接万物的“USB-C接口”
c语言·开发语言·人工智能
石榴树下的七彩鱼2 小时前
图片去水印 API 哪个好?5种方案实测对比(附避坑指南 + 免费在线体验)
图像处理·人工智能·后端·python·api接口·图片去水印·电商自动化
liliangcsdn2 小时前
多轮对话长上下文-向量检索和混合召回示例
开发语言·数据库·人工智能·python
leoZ2313 小时前
金仓老旧项目改造-10
开发语言·前端·人工智能·python·金仓
故事和你913 小时前
洛谷-数据结构1-1-线性表2
开发语言·数据结构·算法·动态规划·图论
小徐不徐说3 小时前
面试C++易错点总结
开发语言·c++·面试·职场和发展·程序设计·工作
lly2024063 小时前
C语言中的循环结构:深入理解与高效应用
开发语言
异步的告白3 小时前
链接脚本SECTIONS逐行深度解析
linux·开发语言
codeejun3 小时前
每日一Go-52、Go微服务--请求超时与熔断策略实战
微服务·golang·iphone
Aurorar0rua3 小时前
CS50 x 2024 Notes C - 04
java·开发语言