Kalkulator wariacji i permutacji
Aby wyznaczyć liczbę wariacji, wprowadź liczbę elementów zbioru (n), liczbę dozwolonych wyborów (zwykle oznaczaną jako k lub r) i zaznacz opcję „Zezwalaj na powtórzenia”, jeśli elementy zbioru mogą zostać wybrane więcej niż jeden raz. Kliknij przycisk „Oblicz”, a wynik wyświetli się poniżej.
Czym są wariacje i permutacje?
k-wyrazowa wariacja zbioru n-elementowego to sposób uporządkowania k elementów z większego zbioru n elementów. Kalkulator wariacji i permutacji oblicza liczbę takich uporządkowań dla danych wartości n i k. W niektórych źródłach wykorzystuje się literę r w miejsce k, ale jest to jedynie alternatywny sposób zapisu – oznaczają tę samą rzecz.
Permutacja to zmiana kolejności elementów danego ciągu. Liczba permutacji informuje nas o tym, na ile różnych sposobów można uporządkować ciąg elementów. Permutacja to wariacja, dla której n = k.
Istnieją dwa rodzaje wariacji. Pierwszy z nich to wariacje bez powtórzeń. W takiej wariacji każdy z n elementów może być użyty tylko raz. W drugim rodzaju wariacji elementy zbioru mogą występować w ciągu wielokrotnie – wtedy mówimy o wariacji z powtórzeniami. Niniejszy kalkulator kombinatoryczny pozwala na obliczanie obu typów wariacji.
Wariacje i kombinacje
Wariacje często są mylone z kombinacjami. W nieformalnym języku możemy na przykład mówić o otwieraniu sejfu czy kłódki za pomocą „kombinacji” cyfr. Ściśle rzecz biorąc, takie sformułowanie nie jest poprawne, bo ciąg cyfr tworzący kod do otwarcia kłódki to zazwyczaj wariacja z powtórzeniami.
Zgodnie z matematycznymi definicjami różnica między wariacją a kombinacją opiera się na fakcie, że w wariacji kolejność elementów ma znaczenie. Z tego powodu mówimy w jej kontekście o uporządkowaniach i ciągach. Z kolei w przypadku kombinacji kolejność elementów nie ma znaczenia, dlatego powinniśmy mówić o wybieraniu elementów i podzbiorach elementów.
Kod służący do otwarcia kłódki jest ciągiem, w którym kolejność cyfr zdecydowanie ma znaczenie, dlatego nazywanie go „kombinacją”, mimo iż powszechne w codziennym języku, nie jest matematycznie poprawne.
Jeśli interesują Cię kombinacje, a nie wariacje, zachęcamy do odwiedzenia naszego Kalkulatora kombinacji.
Wzór na wariacje
Rozważmy najpierw wariacje, w których nie dopuszczamy możliwości powtórzeń, tj. k-wyrazowe wariacje zbiorów n-elementowych bez powtórzeń. Jeśli tworzysz k-wyrazowe ciągi z n elementów, to liczbę różnych ciągów, które możesz w ten sposób uzyskać, wyraża się za pomocą wzoru:
n! we wzorze oznacza n silnia. Poza niektórzy autorzy wykorzystują też inne symbole:
Z kolei dla k-wyrazowych wariacji zbiorów n-elementowych z powtórzeniami używa się następującego wzoru:
To po prostu n podniesione do potęgi k.
Wzór na wariacje – wyjaśnienie
Wyobraźmy sobie, że musimy stworzyć ciąg o długości k za pomocą n. Na początku ciągu możemy umieścić którykolwiek z n elementów. W przypadku wariacji bez powtórzeń element, który wybraliśmy jako pierwszy, jest usuwany z puli, więc dla drugiego miejsca w ciągu zostaje nam do wyboru elementów. Drugi wybrany przez nas element również jest usuwany z dostępnej puli, więc na miejscu trzecim możemy umieścić jeden z elementów. Powtarzamy ten proces aż do momentu, w którym wypełnimy cały ciąg, co daje się ująć następującym wzorem:
Możemy wtedy pomnożyć i podzielić ten wzór przez tę samą liczbę bez wpływu na jego wartość. Sprytnie wybieramy co daje nam:
W przypadku wariacji z powtórzeniami sytuacja jest z początku bardzo podobna – na pierwszej pozycji ciągu możemy umieścić którykolwiek z n elementów. Ale skoro tym razem dopuszczamy możliwość powtórzeń, wybrany element nie znika z dostępnej puli i dla drugiego miejsca w ciągu liczba opcji nadal wynosi n. To samo dotyczy trzeciego miejsca i tak dalej. Wykonujemy k wyborów, a więc ostateczny wzór ma postać:
Przykłady wariacji
Przykład: Na ile sposobów można potasować talię kart?
Standardowa talia zawiera 52 karty. Na ile różnych sposobów możemy uporządkować taką talię? Całkowita liczba dostępnych elementów wynosi 52, a więc n = 52. Długość ciągu, czyli liczba kart, które chcemy wykorzystać w tej wariacji, to również 52, bo chcemy wykorzystać całą talię. A zatem k = 52. Powtórzenia nie są w tym wypadku możliwe, ponieważ każda karta występuje w danym uporządkowaniu tylko raz. Wiedząc to wszystko, możemy podstawić dane do odpowiedniego wzoru:
To ogromna liczba. Nasz kalkulator wariacji i permutacji poda Ci dokładny wynik. Ponieważ mamy tu do czynienia z permutacją, tj. wariacją, w której rozmiar próby jest równy całkowitej liczbie elementów (k = n), wzór da się skrócić do zwykłej silni. Identyczny wynik otrzymamy zatem, gdy obliczymy 52 silnia.
Przykład: Ile trzyliterowych słów da się stworzyć ze słowa PIES?
Mamy do dyspozycji cztery różne litery i chcemy zobaczyć, ile różnych trzyliterowych ciągów możemy z nich stworzyć. Każdego elementu możemy użyć tylko raz, czyli otrzymujemy Poniżej znajdują się wszystkie 24 wariacje:
Przykład: Na ile sposobów możemy rozdać siedem różnokolorowych piłek czwórce dzieci?
W tym przykładzie chcemy dać po jednej piłce każdemu z czterech dzieci: Jasiowi, Marysi, Stasiowi i Małgosi. Mamy siedem piłek: białą, pomarańczową, niebieską, zieloną, żółtą, fioletową i brązową. Ile istnieje różnych możliwości przydzielenia po jednej piłce każdemu dziecku? I tym razem pomogą nam wariacje. Ponieważ nie możemy dać tej samej piłki więcej niż jednemu dziecku, użyjemy wariacji bez powtórzeń:
A zatem istnieje 840 różnych sposobów na rozdzielenie piłek między czwórkę dzieci.
Przykład: Na ile sposobów można wybrać przewodniczącego, jego zastępcę oraz skarbnika w dwudziestoosobowej klasie?
Mamy 20 osób, z których każda może zostać przewodniczącym. Wybieramy jedną z nich. Teraz, gdy mamy już przewodniczącego, zostaje 19 osób, które mogą zostać zastępcą. Gdy dokonamy tego wyboru, zostaje 18 osób, spośród których należy wybrać skarbnika. Mnożymy te liczby przez siebie i otrzymujemy możliwych opcji na wybranie trzech uczniów do pełnienia wspomnianych funkcji.
Podsumowując – za każdym razem, gdy mamy k funkcji i grupę n kandydatów, istnieje dokładnie sposobów, aby te funkcje obsadzić. W tym konkretnym przypadku mamy
Przykład: Ile istnieje „kombinacji” czterocyfrowego kodu do kłódki, jeśli kłódka nie ma zer?
Nie jest to klasyczna kłódka, ponieważ mamy do dyspozycji cyfry od 1 do 9, a nie od 0 do 9, jak zwykle bywa. Liczba elementów wynosi więc n = 9. Długość ciągu to k = 4. Każda z cyfr może zostać użyta tyle razy, ile tylko potrzeba, więc w tym wypadku musimy posłużyć się wariacją z powtórzeniami. Wzór ma postać:
Istnieje 6561 możliwych „kombinacji”. Jeśli sprawdzenie jednej z nich zajmowałoby sekundę, sprawdzenie wszystkich powinno zająć mniej niż dwie godziny. Zauważ, że użyte w nagłówku słowo „kombinacja” nie jest technicznie poprawne. Kolejność wprowadzanych cyfr ma znaczenie, a więc powinniśmy raczej mówić tu o wariacjach z powtórzeniami, a nie o kombinacjach.
Przykład: Ile istnieje różnych haseł?
Odpowiedź na to pytanie zależy od długości haseł i liczby dostępnych znaków. Dla przykładu wyznaczmy liczbę haseł dziesięcioznakowych. Mamy do dyspozycji małe i wielkie litery (od a do z i od A do Z – łącznie 52 znaki), cyfry (od 0 do 9) i znaki specjalne (jest ich 30):
! @ # $ % ^ & * ( ) - _ = + [ ] \ { } | ; : ' " , . / < > ?
Łącznie daje nam to 52 + 10 + 30 = 92 różne znaki. Każdego z nich możemy użyć tyle razy, ile tylko chcemy, a więc musimy obliczyć k-wyrazową wariację zbioru n z powtórzeniami. W takim wypadku interesujący nas wzór to:
Jak widać, liczba możliwych haseł jest naprawdę ogromna. Praktycznie niemożliwe jest, żeby ktoś odgadł Twoje hasło, sprawdzając wszystkie możliwe „kombinacje” – o ile Twoim hasłem nie jest coś banalnego, jak hasło123 albo admin1.
Wariacje w Pythonie
Jeśli chcesz wyznaczyć liczbę wariacji w języku programowania, np. w Pythonie, możesz użyć wzoru na wariacje do stworzenia swojej własnej funkcji:
import math
def nPk(n, k):
return int(math.factorial(n) / math.factorial(n - k))
Podobnie możesz użyć wzoru na wariacje z powtórzeniami:
def nUk(n, k):
return n**k
Jeśli chcesz wygenerować wszystkie możliwe wariacje bez powtórzeń, użyj na przykład takiej funkcji:
from itertools, import permutations
def list_perms(n, k):
perms = permutations(range(n), k)
for p in perms:
print(p)
I analogicznie dla wariacji z powtórzeniami:
import itertools
def list_perms_with_replacents(n, k):
for perm in itertools.product(range(n), repeat=k):
print(perm)
Kalkulator potęg dla dużych liczb
Z uwagi na fakt, że wzór na wariacje z powtórzeniami to niniejszy Kalkulator może być również wykorzystany jako kalkulator wykładniczy do obliczenia potęgi danej liczby. Takie zastosowanie może być przydatne, szczególnie jeśli wynik interesującego Cię działania jest bardzo duży (z pomocą naszego Kalkulatora możesz bez problemu obliczyć dokładny wynik dla 31000), ponieważ tradycyjne kalkulatory nie radzą sobie najlepiej z dużymi liczbami. Zaznacz pole wyboru „Zezwalaj na powtórzenia” i wprowadź podstawę potęgi jako n, a wykładnik jako k. Pamiętaj, że możesz używać tylko liczb całkowitych nieujemnych.
Jak korzystać z Kalkulatora wariacji i permutacji
Aby skorzystać z Kalkulatora, wprowadź liczbę elementów do wyboru w pole oznaczone literą n. Wielkość próby, tj. długość ciągu, należy wprowadzić w polu opisanym jako „k lub r”. Jeśli chcesz obliczyć wariacje z powtórzeniami, zaznacz pole wyboru „Zezwalaj na powtórzenia”, a następnie kliknij przycisk „Oblicz”, żeby uzyskać wynik. Kliknięcie przycisku „Wyczyść” umożliwi ponowne wprowadzenie danych.
Wynik wyświetli się w polu „Wynik” poniżej. Jeśli będzie to stosunkowo mała liczba, pokaże się w jednej linii. Większe liczby natomiast są przedstawiane na dwa sposoby: przybliżenie w notacji naukowej wyświetli się u góry, a dokładny wynik pod nim. Jeśli podczas obliczeń wystąpi błąd, komunikat o nim pojawi się w miejscu wyniku.
Kalkulator rozumie tylko liczby całkowite nieujemne. W przypadku wariacji bez powtórzeń wprowadzone liczby muszą dodatkowo spełniać wymóg k ≤ n. Jeśli chcesz obliczyć wariacje z powtórzeniami, obie wprowadzone liczby nie mogą być jednocześnie równe 0, ponieważ wartość 00 jest nieoznaczona. Nie ma górnej granicy dla wartości n i k. Uzyskanie dużych liczb, np. takich jak dla n = 8000000000 i k = 1000 (liczba sposobów wybrania tysiąca najbogatszych ludzi na Ziemi), nie powinno stanowić większego problemu. W zależności od ustawień systemowych, możliwe jest uzyskanie nawet dużo większych wyników, jednak może to zająć więcej czasu. Jeśli żądane obliczenia przekraczają możliwości Twojego sprzętu, strona może się zawiesić.
Możliwy jest również wybór podstawy, w której zostanie przedstawiony wynik. Domyślnie podstawa wynosi 10, co oznacza, że wynik wyświetli się w systemie dziesiętnym. Podstawą może być dowolna liczba z zakresu od 2 do 36, jednakże wybrana podstawa dotyczy tylko wyniku. Wartości n i k zawsze są odczytywane tak, jakby były zapisane w systemie dziesiętnym.
Ponadto jest też do wyboru kilka innych opcji. Można: 1) skopiować wynik do schowka, 2) zapisać wynik do pliku, 3) wydrukować wynik, 4) skopiować link do wyniku do schowka i 5) wyczyścić pole „Wynik”. Aby skorzystać z którejś z nich, kliknij odpowiednią ikonkę nad polem „Wynik”.
Cytowanie i osadzanie
Korzystanie z tej strony jest zupełnie darmowe, również w celach komercyjnych, o ile wskażesz ją jako źródło. W przypadku cytowania jej w tekście naukowym możesz skorzystać z poniższego wzoru cytowania:
Aby zacytować tę stronę w Internecie, możesz umieścić link do niej w postaci głównego adresu URL (https://minesweeper.us/saper/
Możesz również osadzić tę stronę na swojej witrynie za pomocą elementu iframe. Jeśli chcesz, aby na Twojej stronie wyświetlał się tylko kalkulator, bez pozostałej treści (menu, artykułu itd.), użyj w atrybucie src następującego adresu URL: https://
Prosimy o cytowanie tej strony przy pomocy klikalnego odnośnika. Jeśli zdecydujesz się osadzić naszą aplikację na swojej stronie, powiadom nas o tym w mailu pod adresem contact@simiade.com. Dzięki temu będziemy mogli poinformować Cię o wszelkich zmianach w naszej aplikacji, które mogą wiązać się z koniecznością aktualizacji sposobu jej wyświetlania na innych stronach internetowych.
Bibliografia
Charalambides, Charalambos A. (2002). Enumerative Combinatorics. CRC Press.
Kontakt
Jeśli masz jakiekolwiek pytania, uwagi lub sugestie, możesz podzielić się nimi tutaj:
Możesz też skontaktować się z nami tradycyjną pocztą:
Adam Narkiewicz
Plac Bankowy 2
00-095 Warszawa
Polska
+48 728235409
contact@simiade.com
https://simiade.com/pl/
