C# :: Aufgabe #285

2 Lösungen Lösungen öffentlich

Anzahl der Möglichkeiten, in N unterscheidbaren Eimern, N nicht unterscheidbare Tennisbälle zu lagern

Anfänger - C# von hollst - 20.03.2020 um 22:15 Uhr
Man habe N unterscheidbare Eimer, unterscheidbar bspw. durch Nummerierung der Eimer,
und N Tennisbälle, die man nicht voneinanderder unterscheiden kann.

Wie viele Möglichkeiten gibt es, die N Bälle in N Eimern aufzubewahren?

Dies sei für N = 3 ... 10 anhand eines Computerprogramms zu berechnen.
Bei N = 1, gibt es nur eine Möglichkeit. Bei N = 2 gibt es 3 Möglichkeiten: (2,0), (1,1) und (0,2).

Viel Spaß!

Lösungen:

vote_ok
von JKooP (3200 Punkte) - 23.03.2020 um 14:25 Uhr
Quellcode ausblenden C#-Code
using System;

namespace CS_Aufgabe_285_Eimer_Baelle_Kombinationen
{
    class Program
    {
        static void Main(string[] args)
        {
            for (var i = 3; i <= 10; i++)
            {
                Console.WriteLine($"{i:00}:\t{GetCombinations(i - 1)}");
            }
        }

        static int GetCombinations(int n)
        {
            var k = 1;

            for (int i = 0; i < n; i++)
            {
                k = k * (4 * i + 6) / (i + 2);
            }
            return k;
        }

    }
}
vote_ok
von luckyman81 (550 Punkte) - 15.04.2020 um 23:06 Uhr
Quellcode ausblenden C#-Code
using System;

namespace CS_Aufgabe_285_Tennisballs
{
    class Program
    {
        static void Main(string[] args)
        {
            for (ulong n = 3; n <= 10; n++)
            {
                Console.WriteLine($"n = {n}: {fakultaet(2 * n - 1) / fakultaet(n) / fakultaet(n - 1)}");

            }
            Console.ReadKey();
        }

        private static ulong fakultaet(ulong n)
        {
            if (n == 0)
                return 1;
            else
                return (n * fakultaet(n - 1));
        }
    }
}