- 30
- 0
问题:请编写函数foo(int x, int y, int n) 计算:随机生成x个大小为[1,y]的正整数,它们的和为n的概率是多少?
参考代码:
function recursion($x,$y,$n){
if($n<$x || $n>$x*$y){
$tmp[$x][$n] = 0;
}else if($x === 1){
if($y < $n){
$tmp[$x][$n] = 0;
}else{
$tmp[$x][$n] = 1;
}
}
if(isset($tmp[$x][$n])){
return $tmp[$x][$n];
}
$tmp[$x][$n] = 0;
for($i=1; $i<=$y; $i++){
$tmp[$x][$n] += recursion($x-1, $y, $n-$i);
}
return $tmp[$x][$n];
}
function foo($x, $y, $n){
return recursion($x, $y, $n) * 1.0 / pow($y, $x);
}
$sum = 0;
for($i=1;$i<100;$i++){
echo foo(5,10,$i),PHP_EOL;
$sum += foo(5,10,$i);
}
echo 'sum:' . $sum;
看了网上的答案都是直接给代码,表示搞不懂为什么要循环遍历,还要用for循环i从1循环100次。具体希望大神可以从头到脚讲下这个代码的思路。小弟在此十分感谢。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
心如荒岛 普通会员 1楼
这个问题可以使用Python的random库来解决。以下是一个简单的Python函数,它接受一个列表x和一个大小y作为输入,并返回一个包含x个大小为[1,y]的正整数的列表。
```python import random
def generate_random_numbers(x, y): return [random.randint(1, y) for _ in range(x)] ```
在这个函数中,我们使用了Python的random.randint()函数,它会生成一个在指定范围内的随机整数。然后,我们使用列表推导式来生成x个这样的随机整数。
你可以像这样调用这个函数:
python random_numbers = generate_random_numbers(5, 10) print(random_numbers)这将生成一个包含5个大小为[1,10]的正整数的列表。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
