??講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數學建模清風主講》。?
MATLAB教程新手入門篇(數學建模清風主講,適合零基礎同學觀看)_嗶哩嗶哩_bilibili
MATLAB中有一個非常有用的函數:randperm函數,它能夠將一個數字序列進行隨機打亂。它有兩種常見的用法:
? ? 用法1:randperm(n)可以將向量1:n中元素的順序隨機打亂,生成一個長度仍為n的新向量,因此所有可能出現的情況共n!種(全排列)。例如,當你運行randperm(4)時,你可能得到[1 4 3 2],也可能得到[3 2 4 1]。
? ? 用法2:randperm(n,k)表示從打亂的1:n序列中隨機的選擇k個數出來,顯然這k個數都不相同,且k要小于等于n。例如,當你運行randperm(10,3)時,你可能得到[5 3 10],也可能得到[6 5 8]。
請回答下面的問題:
? ? 1.根據上面的介紹,請你在MATLAB中測試randperm函數的功能。特別地,如果n是負數或者小數會出現怎樣的情況?如果k大于n會出現怎樣的情況?
? ? 2. 假設一個商品推銷員要去10個不同的城市推銷商品,該推銷員隨機選擇一個城市出發,依次經過其他所有的城市后,回到出發的城市(中途經過的城市不重復),為了方便,這10個城市就用數字1至10表示。請你為該推銷員隨機的生成一條路線(例如2 10 8 9 1 5 7 6 3 4 2)。
?
3. 使用代碼模擬下列場景:假設你是一名數學老師,你正在給同學們講不定積分的計算。這時候你的PPT上出現了你備課時準備的4道練習題,你需要隨機抽取4名幸運同學到黑板上進行計算。已知你的班上共有50名同學,他們的學號分別是2023001至2023050,你在MATLAB中運行了你寫的這個程序,這四名同學的學號在MATLAB中被隨機地抽取出來。
?
?4. 假設某公司在年會上設置了抽獎環節。主辦方準備了一個抽獎用的不透明盒子,盒子內有10張獎券,其面值分別為[1 2 5 10 20 50 100 200 500 1000],每名員工從中隨機地抽取3張,將這3張獎券的面值相加就是他能獲得的現金獎勵。請設計一個程序,模擬清風老師在該抽獎環節中抽取一次能獲得多少錢。
? ? 5. 一副撲克牌有54張,其中大王和小王各一張,A,2,3,4,5,6,7,8,9,10,J,Q,K各有4張。假設我們不考慮桃杏梅方這四種花色,請你設計一個隨機的發牌程序,為地主發20張牌,兩個農民各發17張牌。為了方便,A,2,3,4,5,6,7,8,9,10,J,Q,K分別用數字1至13代替,小王用14代替,大王用15代替。進一步地,請你判斷地主的牌是否有炸彈(有炸彈是指手上有雙王或者有四張相同的牌例如4張3)?
判斷地主手上是否有炸彈
(1)雙王
(2)普通炸彈