2017-02-25 115 views
1

如果我有一個數組中的10個數字a=[1 2 3 4 5 6 7 8 9 10] 如何讓5組隨機選擇兩組數字,並且數字在所有5組中應該是唯一的?唯一隨機選擇一個數組中的數字

對於上述陣列,答案應該是:

S1=[3 8] 
S2=[2 5] 
S3=[1 4] 
S4=[6 9] 
S5=[7 10] 
+0

你能否修正這篇文章的措辭來澄清你的意思?一個可能有效的結果的例子可能會有所幫助。 – tmpearce

+0

我已經更新了這個問題 – Addee

+0

你可以使用[randperm](https://www.mathworks.com/help/matlab/ref/randperm.html) – rahnema1

回答

1

您可以使用randperm生成隨機指標到原來的載體,並用它來打亂原來的載體。然後,只取混洗向量的元素,以便:

a=[1 2 3 4 5 6 7 8 9 10]; 
shuffled = a(randperm(length(a))); 
sets = reshape(shuffled,5,2); 

你的變量S1通過S5對應於矩陣sets的每一行。

相關問題