Вот программа лобового рассчета вероятности, что при заданных длинах списков и случайном выборе первого места из каждого списка одна выделенная партия займет первое место не менее, чем в k жеребьевках. Желающие могут проверить.
L = [5 8 6 8 7 7 6 7 6 6 8 ]; p = 1 ./ L';
N = length( L ); m = 0 : 2 .^ N - 1; b = bitget( repmat( m, N, 1 ), repmat( (1 : N)', 1, 2 .^ N ) );
prob = prod( repmat( p, 1, 2 .^ N ) .^ b ... .* repmat( 1 - p, 1, 2 .^ N ) .^ (1 - b) );
Pk = []; for k = 0 : N Pk( k + 1 ) = sum( prob( sum(b) >= k ) ); end
no subject
Date: 2007-02-16 08:40 pm (UTC)no subject
Date: 2007-02-16 08:43 pm (UTC)no subject
Date: 2007-02-21 06:37 am (UTC)Вот программа лобового рассчета вероятности, что при заданных длинах списков и случайном выборе первого места из каждого списка одна выделенная партия займет первое место не менее, чем в k жеребьевках. Желающие могут проверить.
L = [5 8 6 8 7 7 6 7 6 6 8 ];
p = 1 ./ L';
N = length( L );
m = 0 : 2 .^ N - 1;
b = bitget( repmat( m, N, 1 ), repmat( (1 : N)', 1, 2 .^ N ) );
prob = prod( repmat( p, 1, 2 .^ N ) .^ b ...
.* repmat( 1 - p, 1, 2 .^ N ) .^ (1 - b) );
Pk = [];
for k = 0 : N
Pk( k + 1 ) = sum( prob( sum(b) >= k ) );
end
sprintf( '%2d %g\n', [(0:N); Pk] )