发布网友 发布时间:2022-04-22 17:33
共5个回答
热心网友 时间:2023-11-13 22:13
1、首先在电脑中,找到并打开MATLAB软件,二项分布随机数的产生。
2、接着输入二项分布随机数X~b(n,p),n为发生次数,p为发生概率,如下图所示。
3、然后输入泊松分布,参数为p,如下图所示。
4、接着输入指数分布,参数为λ,如下图所示。
5、最后正态分布,X~N(μ,δ^2),如下图所示,就完成了。
热心网友 时间:2023-11-13 22:13
实现方法:首先使用rand()函数生成N个随机数,假设此时N个随机数的和是S,那么将每个随机数变为原来的M/S倍,这样就实现N个随机数的和是定值M的效果了。关键代码如下:
A = rand(1,N); S = sum(A); B = A*M/S;
下面进行实例演示和详细讲解:产生9个和为定值10的随机数。
1、打开matlab软件,在命令窗口输入:A = rand(1,9),表示产生9个0~1之间的随机数,输出如下:
2、继续输入:S = sum(A); B = A*10/S ,表示将每个随机数变为到原来的10/sum(A)倍,此时的数组B即为所求。输出结果如下:
3、为了验证一下得到的数组B的和是否为定值10,在命令窗口输入:sum(B),结果如下:
热心网友 时间:2023-11-13 22:14
function [y_rand,sum_rand]=rand_(M)热心网友 时间:2023-11-13 22:14
话说,如果这9个数之和为给定值,那就起码满足了一条方程,那就不是9个“随机数”了。如果每个随机数的大小范围都相同的话,那就不一定能满足你要求的M值了。你的问题需要再表述清楚一点。比如说,用户给定M和随机数范围,那么函数要判断是否存在这样的“随机数”列。最简单的程序是,任意生成8个随机数,用M减去这8个之和。热心网友 时间:2023-11-13 22:15
M=300;