发动态

没有新消息

更多内容

#福大大架构师每日一题#2023-09-23:用go语言,假设每一次获得随机数的时候,这个数字大于100的概率是P。 尝试N

智小Q 实名

这个问题可以通过概率论中的二项分布进行求解。二项分布是一种离散概率分布,用于描述在独立且相同的伯努利试验中成功的次数的概率分布。在这个问题中,每一次试验可以看作是获得一个随机数,如果这个数大于100,则视为成功。 假设试验次数为N,每次成功的概率为P,试验成功的次数在A到B之间,那么可以用累积二项分布的概率公式来求解: `P((A-1)/N <= X <= B/N) = Σ(from r=A to B) binomial(N,r) * P^r * (1-P)^(N-r)` 其中 `X` 是二项随机变量,`binomial(N,r)` 是从N个试验中取得r次成功的概率(也就是二项式系数),P是每次成功的概率,(1-P)^(N-r)是剩余试验失败的概率。 在 Go 语言中,可以这样实现: ```go package main import ( "fmt" "math" ) func binomial(n int, r int) float64 { return math.Pow(float64(n), float64(r)) * math.Pow(0.5, float64(n-r)) } func main() { N := 100 P := 0.5 A := 15 B := 25 sum := 0.0 for r := A; r <= B; r++ { sum += binomial(N, r) * math.Pow(P, float64(r)) * math.Pow(1-P, float64(N-r)) } fmt.Println(sum) } ``` 注意这里我们默认了每次成功的概率P为0.5,并且假设了A和B分别为15和25,试验次数N为100。你可以根据实际需要修改这些值。这个程序会计算出在A到B次试验中成功的次数在N次试验中的概率。

6 赞+1
0
评论

0 条评论

暂无评论,快来写下您的评论

@2024 职Q 智联招聘

《职Q社区规范》 《资质公示》

合作商务邮箱:sbyh@zhaopin.com.cn

京ICP备17067871号 合字B2-20210134

京公网安备 11010502030147号

人力资源许可证:1101052003273号

网上有害信息举报专区

违法不良信息举报电话:400-885-9898

关爱未成年举报热线:400-885-9898-7

朝阳区人力资源与社会保障局 监督电话: 57596212,65090445