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中如何隨機產生由0和1兩個數組成的長度為N的隨機序列
a randint 1,1000 randint baim,n 是產生由0和1兩個數 du組成的m n維矩陣 這樣的隨zhi 機數dao產生專函式還有屬 randn m,n 產生標準正太分布的隨機數rand m,n 產生均勻分布隨機數 你可以在matlab裡用 help randint 這樣的語句來...
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...
在MATLAB中如何建立包含隨機字母的一維1 10向量a,並刪除其中的大寫字母利用邏輯關係
程式如下 b randint 1,10,65 116 隨機產生 1 10 的 65 116 範圍的正整數 ascii 碼 b b 90 b b 90 6 65 90 是小寫字母,90 則 6,97 122 是大寫字母 a char b 將 ascii 碼轉換為字母k find a a a z a k...