Witam, rozwiązując jedne zadanie z algorytmiki rozbiłem je na kilka problemów. Z większością z nich sobie poradziłem, ale z jednym mam problem. Muszę wyznaczyć ilość zbiorów jaką się da utworzyć ze zbioru w którym mamy:
a iksów,
b igreków,
c zetów,
tak że a + b + c = n.
np. Dla: n = 4; a = 2; b = 1; c = 1 nasz główny ciąg to: {x, x, y, z} i z niego możemy utworzyć:
{x, x, y, z}; {x, x, z, y}; {x, y, x, z}; {x, y, z, x}; ... ; {z, y, x, x}.
Jak znaleźć ilość tych kombinacji. Z góry dziękuję, pozdrawiam.
Walery napisał(a)
Muszę wyznaczyć ilość zbiorów jaką się da utworzyć ze zbioru
(...)
Jak znaleźć ilość tych kombinacji.
to chyba chodzi Ci o permutacje a nie podzbiory czyli na ile sposobow mozna ustawic te elementy?
liczba mozliwosci to n! (silnia) czyli (a+b+c)!
@aigimig, chyba nie. Dla n = a =3, b = 0, c = 0 jest tylko jedna kombinacja, Twój wzór daje 6.
@Walery, potrzebujesz jawny wzór, czy wystarczy Ci obliczanie rekurencyjne?
widac za bardzo zasugerowalem sie przykladem
wzór matematyczny to chyba (n po a)*(n-a po b) - korzystając z interpretacji kombinatorycznej jako iloczyn kombinacji....( reguł mnożenia) to nie wątek matematyczny więc się nie chce rozpisywać zresztą nie wiem czy dobrze więc się nie chcę zbłaźnić ;p
@userek0, IMHO dobrze. Można to zapisać tak:
Wybaczcie za dłuższą nieobecność. Oczywiści dziękuję za wszystkie wypowiedzi. Na pytanie czy potrzebuje wzór czy rozwiązanie rekurencyjne muszę odpowiedzieć, że algorytm musi być wydajny(chciałbym żeby się zmieścił w 6s dla n = 1000). Jeszcze raz proszę o jakieś wskazówki.
To jest odpowiedź, życzę powodzenia przy liczeniu .
Krótkie uzasadnienie, dany jest zbiór {x1,..,xa,y1,...,yb,z1,...,zc}, n = a+b+c, można ten zbiór uporządkować na n! sposobów, elementy x1,...,xa są "nierozróżnialne", można je ustawić na a! sposobów, zatem trzeba n! podzielić przez a!,...