欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

go写一个简单的概率算法

程序员文章站 2024-02-16 10:46:22
...
package main

import (
	"fmt"
	"math/rand"
)

func main() {
	//100万次算法运行
	for a := 0; a < 1000000; a++ {
		fmt.Println(Algorithm(a))
	}
}

func Algorithm(a int) string {
	start := 0
	var end int
	//probabilities,一共几个概率事件,另外各自概率是多少 必须相加=10000
	probabilities := []int{300, 1000, 2400, 1600, 3000, 1200, 500}
	rand := rand.Intn(10000) //0-10000的随机数共10000个数
	for _, probability := range probabilities {
		end += probability
		if start <= rand && end > rand {
			return fmt.Sprintf("第%d次,开始:%d,随机数:%d,结束:%d", a, start, rand, end)
		}
		start = end
	}
	return "概率错误"
}

结果如下:

go写一个简单的概率算法

相关标签: 概率