1樓:yty隨意
1、首先在電腦中,找到並開啟matlab軟體,二項分佈隨機數的產生。
2、接著輸入二項分佈隨機數x~b(n,p),n為發生次數,p為發生概率,如下圖所示。
3、然後輸入泊松分佈,引數為p,如下圖所示。
4、接著輸入指數分佈,引數為λ,如下圖所示。
5、最後正態分佈,x~n(μ,δ^2),如下圖所示,就完成了。
2樓:匿名使用者
實現方法:首先使用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),結果如下:
3樓:歇洛克
話說,如果這9個數之和為給定值,那就起碼滿足了一條方程,那就不是9個“隨機數”了。如果每個隨機數的大小範圍都相同的話,那就不一定能滿足你要求的m值了。你的問題需要再表述清楚一點。
比如說,使用者給定m和隨機數範圍,那麼函式要判斷是否存在這樣的“隨機數”列。最簡單的程式是,任意生成8個隨機數,用m減去這8個之和。
4樓:匿名使用者
說明:randperm產生1:9 9個數的隨機排列,根據你要求的和數m可以確定對映係數coe,實際上最後產生的隨機數的範圍也可以**,取決於你的m。
本程式的缺點是,m確定以後9個數是確定的,但排列順序每次不一樣而已,和恆為m。
5樓:書宬
m=300;
a=randint(1,9,[1 5]) % [1 10]為取值範圍
m*a/(sum(a))
matlab怎麼生成一組和為定值的隨機數
6樓:匿名使用者
先生成一組隨機來數,自然後把和歸一化,再乘以要求總和就可以了例如要生成10個總和為10的隨機數
a=rand(10,1);
a=10*a/sum(a);
這樣a就是10個和為10的隨機數
其實 a/sum(a)就是總和為1的隨機數
7樓:匿名使用者
參考**:
clcclear all
close all
sum = 30; % 指定復的和制
n = 5; % 隨機bai數du個數r = zeros(1, n); % 生成的隨機數sumtemp = floor(sum/n); % 每生zhi成一個隨機數後,剩餘的dao和
for i=1:(n-1)
r(i) = sumtemp.*rand();
sumtemp = floor((sum - r(i))/(n-i) );
endr(n) = sum - sum(r(1:n-1));
fprintf(1, '生成的隨機數為:');
disp(r);
%-- 驗證 --%
sum_r = sum(r);
fprintf(1, '生成的隨機數的和為:%d\n', sum_r);
輸出生成的隨機數為: 4.1690 1.9026 8.5520 0.3445 15.0320
生成的隨機數的和為:30
如何在asp中編可以產生隨機數n
鬼火狼煙 關於隨機數,請參看以下資料 rnd 函式 描述 返回一個隨機數。語法 rnd number number 引數可以是任意有效的數值表示式。說明 rnd 函式返回一個小於 1 但大於或等於 0 的值。number 的值決定了 rnd 生成隨機數的方式 如果 number 為 rnd 生成 小...
matlab產生隨機數,急求matlab產生隨機數
matlab用命令rand可以產生0 1的隨機數,用線性變換即可,y ax b x 0,y 15 x 1,y 30 a 15,b 15,如果你要的是整數,取整,用round,rand 1,50 ans columns 1 through 11 0.9134 0.6324 0.0975 0.2785 ...
如何用matlab產生 1和1隨機序列,急急急
辛旻劉子蕙 fori 1 n a i rand 0,1 end很久沒用matlab了 不知道這種寫法對不對 你查查吧 產生隨機數就是用rand函式 至於是用還是 我忘了,隨機序列需要用陣列來承接也便於以後的運用 精靈壺 可以這樣寫 生成隨機序列a b rand 1,1000 2 1 1000個 1,...