求解一个算法,使用 go 程序实现

查看 60|回复 2
作者:zhangfa0x11   
1.给定一个正整数 n(n>5 )随机分成 5 个随机数(正整数),
2.每个随机数必须小于 m(m
重点:随机数不可以大于 m ,和必须等于 n

随机, 整数, 等于, 求解

stevenshuang   
🐶把所有的情况算出来,然后随机选择
```go
package main
import "fmt"
func solution(n, sum, depth int, path []int, ans *[][]int) {
if depth == 0 {
if sum == 0 {
dst := make([]int, len(path))
copy(dst, path)
*ans = append(*ans, dst)
}
return
}
for i := 1; i  m { // 如果最大值超过了 m ,则将其设置为 m
max = m
}
nums[i] = rand.Intn(max) + 1 // 随机生成当前随机数
n -= nums[i] // 减去已经生成的随机数
}
}
fmt.Println(nums)
}
zhangfa0x11
OP
  
没有概率分布要求?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部