ivan129 написа:зад.1
Група от 10 души трябва да бъде разделена на две непразни подгрупи А и В. Колко са начините, по които това може да се направи?
Много интересна и както ще видим трудна задача!
Логично е, че реда на хората вътре в групата не е важен, но имената им са важни.
Ако групите са от:
1 - 9, то за първата група имаме 10 възможности, за втората 9!/9! = 1, значи общо 10
2 - 8, то за първата група имаме 10*9/2! възможности, за втората 9!/9! = 1, значи общо 10
По-нататък става по-сложно, затова да сменим подхода.
За да се изредят всички възможности, всеки човек трябва да бъде част от група от 1 до група от 9.
За да може ески да бъде група от:
1 - имаме 10 възможности.
2 - имаме 10*9/2
3 - имаме 10*9*8/(3*2*1)
4 - имаме [tex]{10 \choose 4}[/tex]
5 - имаме [tex]{10 \choose 5}[/tex]
6 - имаме [tex]{10 \choose 6}[/tex] ok, да ама другата група е 4, а ние вече имаме група от 4 малко по-горе. Тогава тази група да я броим ли или не? Хмм... От предишната група 4 по-горе всички 10 човека са част, значи всички 10 човека са част и от групата 6. Значи тази група 6 няма да я броим и всички останали по-големи също. И така крайния отговор е:
[tex]\sum_{k=1}^{5 }{10 \choose k}[/tex]
In [37]: sum( [ scipy.special.binom(10,k) for k in range(1, 5+1)])
Out[37]: 637.0
Добре обаче какво правим с група 5?
In [36]: scipy.special.binom(10,5)
Out[36]: 252.0
Това е по-колко начина можем да разделим 10 човека в 2 групи от по 5 човека? Обаче реда на групите не е важен! Значи вссяко разпределение се повтаря. Значи всъщност отговора е 2-пъти по-малък!
In [39]: 252/2
Out[39]: 126.0
Тогава правилния отговор на задачата е:
[tex]\sum_{k=1}^{4 }{10 \choose k} + {10 \choose 5}/2[/tex]
In [40]: sum( scipy.special.binom(10,k) for k in range(1, 4+1)) + scipy.special.binom(10,5)/2
Out[40]:
511.0