我给出了P(x1 … n)离散独立概率值,它代表了例如发生X的可能性.
我想要一个问题的通用代码:X发生的概率是在同一时间发生的0-n次?
例如:
给定:每辆车(A,B,C)停放的3个概率P(A),P(B),P(C).问题是:哪个概率不会有车,一辆车,两辆车和三辆车停放?
例如,两辆车同时停车的答案是:
P(A,B,~C) = P(A)*P(B)*(1-P(C))
P(A,~B,C) = P(A)*(1-P(B))*P(C)
P(~A,B,C) = (1-P(A))*P(B)*P(C)
P(2 of 3) = P(A,B,~C) + P(A,~B,C) + P(~A,B,C)
我已经编写了所有可能性的代码,但是我得到的值越多,当然由于更多可能的组合而得到的速度越慢.
% probability: Vector with probabilities P1, P2, ... PN
% result: Vector with results as stated above.
% All possibilities:
result(1) = prod(probability);
shift_vector = zeros(anzahl_werte,1);
for i = 1:anzahl_werte
% Shift Vector allocallization
shift_vector(i) = 1;
% Compute all unique permutations of the shift_vector
mult_vectors = uperm(shift_vector);