题目:

题解:
func rand10() int {
for {
a := rand7()
b := rand7()
idx := (a-1)*7 + b
if idx <= 40 {
return 1 + (idx-1)%10
}
a = idx - 40
b = rand7()
// get uniform dist from 1 - 63
idx = (a-1)*7 + b
if idx <= 60 {
return 1 + (idx-1)%10
}
a = idx - 60
b = rand7()
// get uniform dist from 1 - 21
idx = (a-1)*7 + b
if idx <= 20 {
return 1 + (idx-1)%10
}
}
}






![Unity 从零开始的框架搭建1-2 事件的发布-订阅-取消的小优化及调用对象方法总结[半干货]](https://i-blog.csdnimg.cn/direct/b4e9d85f4a6945129c10eccb094ffeeb.png)












