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

時間 2021-07-01 01:34:33

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,...