Idealny minimalny skrót dla kombinacji matematycznych

Najpierw zdefiniuj dwie liczby całkowiteN iK, gdzieN >= K, obie znane w czasie kompilacji. Na przykład:N = 8 iK = 3.

Następnie zdefiniuj zestaw liczb całkowitych[0, N) (lub[1, N] jeśli to ułatwi odpowiedź) i nazwij toS. Na przykład:{0, 1, 2, 3, 4, 5, 6, 7}

Liczba podzbiorówS zK elementy podane są za pomocą wzoruC(N, K). Przykład

Moim problemem jest: Stwórz idealny minimalny skrót dla tych podzbiorów. Będzie to rozmiar przykładowej tabeli mieszaniaC(8, 3) lub56.

Nie obchodzi mnie porządkowanie, tylko, że w tablicy mieszającej jest 56 wpisów, i że mogę szybko określić hash z zestawuK liczby całkowite. Nie dbam też o odwracalność.

Przykładowy skrót:hash({5, 2, 3}) = 42. (Liczba 42 nie jest ważna, przynajmniej nie tutaj)

Czy istnieje ogólny algorytm, który będzie działał z dowolnymi wartościamiN iK? Nie udało mi się znaleźć takiego, przeszukując Google, ani własnych naiwnych wysiłków.

questionAnswers(2)

yourAnswerToTheQuestion