使用MATLAB进行4 ^ 18个排列的置换

时间:2014-11-25 02:10:29

标签: matlab

我对使用MatLab进行编码很新,所以,我只能想到基本代码。

我想解决这个问题,比如说我有18个球包,每个球包含4个球,每个球都有一个数字。

但每个6袋球都完全一样。

说袋子

A,B,C,D,E,F
A:0,1,2,3
B:0,4,5,6
C:0,7,8,9
D:0,10,11,12
E:0,13,14,15
F:0,16,17,18

另外12个包含相似内容的行李。

所以现在我想从每个18行李中挑选一个球,然后我添加数字,总和将在0189的范围内,但是忽略0,只需将1用于189即可。

现在,我想知道获得每个总和从1189的概率是多少。我知道分母是418 - 一个很大的数字。

我最初想在Matlab中使用18 loop-within-loopss来查找总和,然后创建一个189条目向量,我将在各自的条目中+1。

然而,我意识到18循环意味着4^18计算,我觉得这是不合理的,所以,有人能告诉我一个更好的算法来解决这个问题吗?

我的旧代码看起来像这样:

vector = 
[1 0 1 2 3]
[2 0 4 5 6]
[3 0 7 8 9]
[4 0 10 11 12]
[5 0 13 14 15]
[6 0 16 17 18]
:::::::
[18 0 16 17 18]

probability = zeros(1,189)

for (a=1:4) 

for (b=1:4)

for (c=1:4)

for (d=1:4)

for (e=1:4)

:::::

for (r=1:4)

sum =vector(1,a)+vector(2,b)+vector(3,c)+vector(4,d)+vector(5,e)+vector(6,f)+....+vector(18,r)
probability (sum) = probability (sum)+1

0 个答案:

没有答案