matlab中如何產生n個隨機數,和為定值

2021-07-01 01:33:54 字數 2076 閱讀 9064

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

matlab隨機函式怎麼取,matlab中怎樣隨機從一組資料中取一個數

如果是要要均勻分佈,可以使用語句rand 1 0.8 0.1 matlab中的rand函式 用於產生隨機數 均勻分佈的隨機數或矩陣 語法y rand n y rand m,n y rand m n y rand m,n,p,y rand m n p.y rand size a rand s rand...

如何產生真正的隨機數,真的有能產生完全隨機數的演算法嗎?

產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是它在產生是後面的那個數與前面的那個數毫無關係。真正的隨機數是使用物理現象產生的 比如擲錢幣 骰子 轉輪 使用電子元件的噪音 核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。在實際應用中往往使...

matlab中矩陣隨機取幾個元素賦值

首先確定矩陣的行數和列數 用rand函式生成隨機數,與行數相乘取整得m 再次版生成隨機數,與列數相乘取整得n 對權m行n列賦值,如果要求所賦的值也是隨機的,那就用rand生成如此迴圈,如果取的元素個數要求隨機,那麼就用rand生成一個數與矩陣總數相乘得迴圈次數 a rand 10,10 b a in...