Skocz do zawartości

Zablokowane X Przedmiotów, ile możliwości połączenia?


Roki

Rekomendowane odpowiedzi

Mam problem, otóż załóżmy że mam ileś przedmiotów. Ta liczba to X. Jak zrobić, aby program wyliczał na ile możliwości mogę połączyć te rzeczy, których jest X? Na przykład X=3, czyli mam sobie np. x1 = A, x2 = B, a x3 = C i teraz, mogę to tak połączyć:

 

ABC

AB

AC

BC

 

To są wszystkie możliwe połączenia dla X = 3, a jeśli X=5, to? Albo X = 98126? Jak to wyliczyć?

Odnośnik do komentarza
Udostępnij na innych stronach

#include <iostream>
#include <conio.h>

int main(void)
{
    int x;
    int ilosc = 0;
    std::cin >> x;
    int * t = new int[x];
    for(int n = 0; n < x; n++)
        t[n] = n;
    for(int i = 0; i < x; i++)
        for(int j = i+1; j < x; j++)
        {
            ilosc++;
            std::cout << t[i] << " i " << t[j] << std::endl;
        }
    std::cout << "Ilosc kombinacji: " << ilosc;
    delete [] t;
    getch();
    return 0;
}

Odnośnik do komentarza
Udostępnij na innych stronach

Tak to jest do potęgi. Bo to ci jeszcze liczy możliwości wzięcia 1 elementu oraz żadnego czyli dodatkowe 4 kombinacje.

Jak chcesz takie pominąć to po prostu od wyniku odejmij X+1.

 

EDIT:

No i oczywiście nie zapominaj, że wystarczy X>64, a wynik już ci przekroczy zakres unsigned long longa. Będziesz potrzebował napisać własną arytmetykę.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...