TADM2E 2.49

From Algorithm Wiki
Revision as of 12:33, 17 October 2016 by Letientai299 (Talk | contribs)

Jump to: navigation, search

Let's $ f(n) $ denotes the number of ways $ n $ company can merge. We have (assume that merge in this problem doesn't mean acquire as the later is not commutative)

- $ f(2) = 1 $. - $ f(3) = 3 $. From 3 companies, we can first merge any 2 to reduce the size of set to 2. Then, we can merge the 2 new companies. There're 3 ways to select 2 companies from 3. - $ f(n) = \binom{n}{n-1}f(n-1) $. We can merge $ n $ companies by first merge $ n-1 $ ones of them, and then merge the last 2 remaining companies. There're $ \binom{n}{n-1} = n $ ways to select a sub set of $ n-1 $ items from $ n $ items. And we already know that there're $ f(n-1) $ ways to merge the subset (with $ n \ge 3 $.

So, our final function is:

$ f(n) = n.f(n-1) = n(n-1)(n-2)\ldots 3 = \frac{n!}{2} $


Note: my answer is different with the old answer by another wiki editor. I don't know if my understanding about the problems is correct. It's up to the next editor to justify and edit this page again.

My argument is the old solution has some duplication in the way the companies merge together, while my solution is not. Consider $ n=4 $.

The old solution first select 2 companies to merge, reduce the size of set from 4 to 3, and then select 2 companies in new set to merge. So, some thing like the following might happen:

{a,b,c,d}
-> {ab, c, d}, {a, b, cd}
-> {ab, cd} and {ab, cd} // This is a duplication, thus, the result is invalid.

Meanwhile, my solution first try to combine $ n-1 $ companies. And because all subset is different with each other, there's no duplication appear.


Previous answer

With 2 companies {a,b}, there's only one way to merge: [ab]

With three companies {a,b,c}, we need to find the number of ways that the three companies can become two companies, and for every one of those possibilities, the two remaining companies can be reduced to one in only 1 way (because we've already solved the case of two companies). In the case of {a,b,c}, we can have 1 * [{ab,c}, {ac,b}, {bc,a}], or 3.

Now we see a pattern emerging. For n companies, the answer is $ f(n - 1) * g(n) $, where g(n) is the number of ways to reduce n companies to n - 1 companies. g(n) is the sum from 1 to n - 1 of n, which is $ n(n - 1)/2 $. Thus, the answer is $ f(n - 1) * n(n - 1)/2 $.

Another answer: Assuming pairwise merges (no k-way merges) we have $ n-1 $ merge stages where each set of companies is generated from the previous stage (the merged pair being one company). If we characterize each complete merge as different if two companies merge at different stages then we are looking at combinations. In the first stage we have $ \binom{n}{2} $ ways to choose a merge pair and a new set for the next stage. Thus, we have the Cartesian product of each stage set and we can calculate the size as:

$ \prod_{i=2}^{n} \frac{i(i-1)}{2} = \frac{n! (n-1)!}{2^{n-1}} $

Proof by induction follows easily as long as we agree with the counting process for first non-trivial basis (i.e. $ n=3 $ where our formula indicates there are three different possible merges):

{a,b,c} -> {ab, c} -> {abc}
        -> {a, bc} -> {abc}
        -> {ac, b} -> {abc}

And, since we have three paths we can say that's three merges -- this counts a merge step as the same if it results in the same set of companies going on to the next stage. But, instead if we count the actual merge operations:

{a, b, c} -> {a+b, c}, {(a+b) + c}, {a, b+c}, {a + (b+c)},
             {a+c, b}, {(a+c) + b}

then we need to change the denominator in our previous formula:

$ 2^{n-1} \rightarrow 2^{n-2} $ to get six steps.