我对使用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
行李中挑选一个球,然后我添加数字,总和将在0
到189
的范围内,但是忽略0
,只需将1
用于189
即可。
现在,我想知道获得每个总和从1
到189
的概率是多少。我知道分母是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