Permutaatio- ja variaatiolaskin

Permutaatio- ja variaatio­laskin

Laskeaksesi variaatioiden lukumäärän syötä alkioiden määrä (n) sekä kuinka monta kertaa valinta tehdään (merkitään yleensä k- tai r-kirjaimella) ja rastita ”Salli toistot” -ruutu, jos vaihtoehdon saa valita useammin kuin kerran. Paina ”Laske”-painiketta, niin tulos näytetään alla.

Tyhjennä:
2026-10-06, tekijä
Adam Narkiewicz

Adam on kauppa­tieteiden tohtori, vastaa teknisten artikkelien kirjoitta­misesta ja valvoo verkko­sovellusten kehitystä. Löydät hänet täältä:
https://narkiewicz.info/
https://www.linkedin.com/in/adamnarkiewicz/

Mitä variaatiot ja permutaatiot ovat?

Permutaatio on muutos lukujonon alkioiden järje­styksessä. Permutaa­tioiden määrä kertoo, kuinka monella eri tavalla lukujonon alkiot voidaan järjestää.

Variaatio ja erityisesti n:n k-variaatio (suomen­kielisissä lähteissä usein myös n:n k-permutaatio) on tapa järjestää k alkiota suuremmasta n alkion joukosta. Permutaatio- ja variaatio­laskin laskee tällaisten järje­stelyiden lukumäärän annetuille n:n ja k:n arvoille. Joissakin lähteissä k-kirjaimen sijaan käytetään r-kirjainta – ne tarko­ittavat samaa asiaa.

On olemassa kahden­laisia n:n k-variaa­tioita. Ensiksi ne voivat sisältää lukujonoja ilman toistoja: toisin sanoen kukin n alkiosta voi esiintyä lukujonossa korkeintaan kerran. Toiseksi, jos alkiot voivat esiintyä lukujonossa useita kertoja, kyse on n:n k-variaa­tioista toistoilla. Tällä laskimella voit laskea kummankin tyyppisiä variaatioita.

Variaatiot ja kombinaatiot

Variaatiot sekoitetaan usein kombinaa­tioihin. Matemaattisen määritelmän mukaisesti variaatioiden ja kombinaatioiden ero on se, että variaatioissa alkioiden järje­styksellä on merkitystä, minkä vuoksi puhutaan järje­styksistä ja luku­jonoista. Sen sijaan kombinaa­tioissa järje­styksellä ei ole väliä, joten on sopivampaa puhua alkioiden valit­semisesta ja alkioiden osa­joukoista. Jos olet kiinnostunut variaatioiden sijaan kombinaa­tioista, tutustu kombinaatio­laskimeemme.

Variaatio­kaava

Tarka­stellaan ensin variaatioita, joissa toistoja ei ole sallittu, eli n:n k-variaatioita ilman toistoja. Jos muodostat k:n pituisia lukujonoja n alkiosta, saat erilaisten jonojen lukumäärän kaavalla

P(n,k)=n!(n−k)!.

Kaavassa n! tarkoittaa n:n kertomaa. Merkintä­tavan P(n,k) lisäksi joissakin lähteissä käytetään myös muita symboleita:

P(n,k)=Pkn=Pn,k=(n)k=nk_.

Toisaalta niissä n:n k-variaatioissa, joissa toistot on sallittu, käytetään kaavaa

U(n,k)=nk.

Tämä on yksin­kertaisesti n potenssiin k.

Variaatio­kaavan selitys

Kuvitellaan, että meidän täytyy muodostaa k:n pituinen lukujono käyttämällä n alkiota. Voimme asettaa minkä tahansa n alkiosta jonon alkuun. Kun kyse on variaa­tioista ilman toistoja, valittu alkio poistetaan käytet­tävissä olevien joukosta, ja toista paikkaa täytet­täessä jäljellä on vain n−1 alkiota. Sitten toinen valittu alkio poistetaan myös käytet­tävissä olevien joukosta, ja meillä on vain n−2 alkiota, jotka voidaan asettaa kolmanteen paikkaan. Tämä prosessi jatkuu, kunnes koko lukujono on täytetty, jolloin saadaan seuraava kaava:

P(n,k)=n×(n−1)×(n−2)×⋯×(n−k+1)⏟k tekijää.

Sitten voimme kertoa ja jakaa tämän kaavan samalla luvulla muuttamatta sen arvoa. Valintamme on (n−k)!, ja tästä saamme

P(n,k)=n×(n−1)×(n−2)×⋯×(n−k+1)×(n−k)!(n−k)!=n!(n−k)!.

Variaa­tioissa, joissa toistot on sallittu, tilanne on aluksi samanlainen: voimme valita lukujonon ensimmä­iselle paikalle yhden n alkiosta. Mutta koska poiminta tehdään palauttaen, tätä alkiota ei poisteta käytet­tävissä olevien joukosta, joten lukujonon toiselle paikalle vali­ttavissa on edelleen n alkiota. Sama pätee kolmanteen paikkaan ja niin edelleen. Teemme k tällaista valintaa, ja lopullinen kaava on

U(n,k)=n×n×⋯×n⏟k tekijää=nk.

Esimerkkejä permutaa­tioista ja variaa­tioista

Esimerkki: Kuinka monta permutaatiota korttipakan korteista on olemassa?

Tavallisessa pakassa on 52 korttia. Mikä on näiden korttien mahdollisten eri järje­stysten lukumäärä? Käytet­tävissä olevien alkioiden kokonais­määrä on 52, joten n = 52. Lukujonon pituus, eli järje­stykseen sisällytet­tävien korttien määrä, on myös 52, koska haluamme järjestää koko korttipakan. Siispä k = 52. Toistoja ei ole, koska jokainen kortti esiintyy järje­styksessä täsmälleen kerran. Kun tiedämme tämän, meillä on kaikki tarvittava kaavan sovel­tamiseen:

P(52,52)=52!(52−52)!=52!0!=52!≈8,066×1067.

Tämä on erittäin suuri luku. Voit saada tarkan ratkaisun käyttämällä permutaatio- ja variaatio­laskintamme. Koska tässä on kyse permutaa­tiosta eli variaation erityista­pauksesta, jossa otoksen koko on yhtä suuri kuin alkioiden kokonais­määrä (k = n), kaava pelkistyy yksin­kertaiseksi kertomaksi, ja saat täsmällisen vastauksen myös laskemalla 52:n kertoman.

Esimerkki: Kuinka monta 3-kirjaimista ”sanaa” voidaan luoda sanasta ALUS?

Meillä on neljä eri kirjainta, ja haluamme nähdä, montako erilaista kolmen kirjaimen jonoa niistä voidaan muodostaa. Voimme jälleen käyttää kutakin kirjainta vain kerran, joten kaava on P(4,3)=24. Tässä ovat kaikki 24 variaatiota:

ALU
ALS
AUL
AUS
ASL
ASU
LAU
LAS
LUA
LUS
LSA
LSU
UAL
UAS
ULA
ULS
USA
USL
SAL
SAU
SLA
SLU
SUA
SUL

Esimerkki: Kuinka monella tavalla voidaan jakaa 7 eri väristä palloa 4 lapselle?

Tässä esimerkissä haluamme antaa yhden pallon kullekin neljästä lapsesta: Aino, Elias, Leevi ja Olivia. Meillä on seitsemän palloa: valkoinen, oranssi, sininen, vihreä, keltainen, violetti ja ruskea. Kuinka monella eri tavalla voidaan jakaa jokaiselle lapselle yksi pallo? Variaatioista on taas apua. Koska emme voi antaa samaa palloa useammalle kuin yhdelle lapselle, käytämme variaatioita ilman toistoja: P(7,4)=840.

On siis 840 tapaa jakaa pallot lasten kesken.

Esimerkki: Kuinka monella tavalla 20 jäsenen yhdistyk­sestä voidaan valita puheen­johtaja, sihteeri ja rahaston­hoitaja?

On 20 ihmistä, joista voi tulla puheen­johtaja. Valitaan yksi heistä. Nyt kun puheen­johtaja on valittu, jäljellä on 19 ihmistä, joista voi tulla sihteeri. Ja lopuksi, kun meillä on puheen­johtaja ja sihteeri, jäljellä on 18 ihmistä, joista voi tulla rahaston­hoitaja. Kerromme nämä luvut keskenään ja saamme 20×19×18=6840 mahdollista tapaa valita kolme ihmistä näihin tehtäviin.

Yleisesti ottaen, kun täytettäviä paikkoja on k ja ryhmässä on n ehdokasta, valinnat voi tehdä täsmälleen P(n,k) tavalla. Tässä nimenomaisessa tapauksessa meillä on P(20,3)=6840.

Esimerkki: Kuinka monta yhdistelmää on 4 numeron lukossa, jos nollia ei ole?

Tämä ei ole tyypillinen lukko, koska numerot ovat väliltä 1…9 eikä 0…9. Alkioiden määrä on siten n = 9. Lukujonon pituus on k = 4. Kutakin numeroa voidaan käyttää niin monta kertaa kuin tarvitaan, joten tässä tapauksessa käytämme variaatioita toistoilla. Kaava on

U(n,k)=nk=94=6561.

Mahdollisia yhdistelmiä on 6561. Jos jokaisen yhdistelmän kokeile­minen kestää sekunnin, meidän pitäisi pystyä avaamaan lukko alle kahdessa tunnissa kokeile­malla kaikkia yhdistelmiä.

Esimerkki: Kuinka monta mahdollista salasanaa on olemassa?

Vastaus riippuu salasanojen pituudesta ja käytet­tävissä olevien merkkien määrästä. Lasketaan esimerkkinä 10 merkin pituisten salasanojen määrä. Meillä on käytet­tävissämme sekä pienet että isot latina­laiset kirjaimet (a:sta z:aan ja A:sta Z:aan – kirjaimia on 52), numerot (0…9) ja erikois­merkit (niitä on 30):

! @ # $ % ^ & * ( ) - _ = + [ ] \ { } | ; : ' " , . / < > ?

Yhteensä meillä on 52 + 10 + 30 = 92 erilaista merkkiä. Voimme käyttää kutakin merkkiä niin monta kertaa kuin haluamme, joten laskemme n:n k-variaatiot toistoilla. Kaava on

U(n,k)=nk=9210=43 438 845 422 363 213 824.

Tämä on erittäin suuri määrä yksi­löllisiä salasanoja. On käytännössä mahdotonta, että joku arvaisi salasanasi vain kokeile­malla kaikki mahdolliset yhdistelmät läpi – kunhan valitsit satunnaisia merkkejä etkä keksinyt jotakin helppoa, kuten qwert12345 tai salasana0!.

Variaatiot Pythonissa

Jos haluat laskea variaatioiden määrän Pythonin kaltaisella ohjel­mointi­kielellä, voit luoda oman funktiosi variaatio­kaavan avulla:

import math def nPk(n, k): return int(math.factorial(n) / math.factorial(n - k))

Vastaavasti voit käyttää variaatio­kaavaa toistoilla:

def nUk(n, k): return n**k

Jos haluat luoda kaikki variaatiot ilman toistoja, voit kirjoittaa:

from itertools, import permutations def list_perms(n, k): perms = permutations(range(n), k) for p in perms: print(p)

Ja variaatiot toistoilla:

import itertools def list_perms_with_replacents(n, k): for perm in itertools.product(range(n), repeat=k): print(perm)

Potenssi­laskin suurille luvuille

Koska U(n,k)=nk on kaava variaatioille, joissa toistot on sallittu, voit käyttää tätä permutaatio- ja variaatio­laskinta potenssi­laskimena luvun potenssin selvittä­miseen. Tämä voi olla kätevää varsinkin tuloksen ollessa valtava (voit esimerkiksi saada helposti tarkan arvon potenssille 31000), sillä perin­teisillä laskimilla on vaikeuksia suurten tulosten kanssa. Valitse ”Salli toistot” -ruutu ja syötä kantaluku n:n arvona ja eksponentti k:n arvona. Voit käyttää vain ei-negatiivisia kokonais­lukuja.

Näin käytät permutaatio- ja variaatio­laskinta

Voit käyttää tätä laskinta syöttämällä valittavina olevien alkioiden määrän kenttään, joka on merkitty n-kirjaimella. Otoksen koko eli lukujonon pituus syötetään sen alla olevaan kenttään (jossa on merkintä k tai r). Jos olet kiinno­stunut variaatioista toistoilla, valitse ”Salli toistot” -ruutu. Napsauta sitten ”Laske”-painiketta suorit­taaksesi laskuto­imitukset tai paina ”Tyhjennä” syöttääksesi arvot uudelleen.

Tulos näkyy laskimen alla olevassa ”Tulos”-kentässä. Jos tulos on pieni, se näytetään yhdellä rivillä. Suuret luvut esitetään kahdella tavalla: likiarvo tieteelli­sellä merkintä­tavalla näytetään ylimpänä ja tarkka luku sen alla. Jos laskuto­imituksen aikana tapahtuu virhe, se näytetään tuloksen sijaan.

Laskin hyväksyy vain ei-negatiiviset kokonais­luvut. Laskettaessa variaatioita ilman toistoja syötettyjen lukujen on lisäksi täytettävä ehto k ≤ n. Laskettaessa variaatioita toistoilla molemmat luvut eivät voi olla samaan aikaan nolla, koska potenssin 00 arvo on määrittele­mätön. Syötettävillä arvoilla ei ole ylärajaa. Suurten lukujen pitäisi olla helposti lasketta­vissa, kuten arvoilla n = 8000000000 ja k = 1000 (eli tavat valita 1000 ihmistä maapallon väestöstä). Paljon suurem­piakin tuloksia voidaan saada riippuen järje­stelmäsi kokoon­panosta. Suuren tuloksen laskeminen saattaa kuitenkin kestää kauan, tai jos laskuto­imitus ylittää laitteesi kapasi­teetin, sivusto voi kaatua.

Voit vaihtaa kanta­luku­järje­stelmää, jolla haluat näyttää tulokset. Oletusarvo on 10: tulokset näytetään siis desimaali­järje­stelmällä. Voit käyttää kantalukuna mitä tahansa kokonais­lukua väliltä 2…36. Valitulla luku­järje­stelmällä näytetään kuitenkin vain tulokset. Syöttämiäsi n:n ja k:n arvoja käsitellään aina kymmen­järjestel­män mukaan.

Voit halutessasi 1) kopioida tuloksen leike­pöydälle, 2) ladata tuloksen tiedostona, 3) tulostaa tuloksen, 4) kopioida leike­pöydälle linkin tulokseen ja 5) tyhjentää ”Tulos”-kentän. Jos haluat aktivoida jonkin näistä vaihto­ehdoista, napsauta siihen liittyvää kuvaketta ”Tulos”-kentän yläpuolella.

Viittaa tähän sisältöön tai upota se

Voit käyttää tätä sivustoa velo­ituksetta, mukaan lukien kaupa­llisiin tarko­ituksiin, kunhan mainitset tämän sivuston lähteenä. Jos viittaat siihen tietee­llisessä tekstissä, voit käyttää seuraavaa viittau­stapaa:

Narkiewicz A.: Permutaatio- ja variaatiolaskin. https://minesweeper.us/miinaharava/permutaatio-ja-variaatiolaskin/. Viitattu .

Jos viittaat tähän sivustoon internetissä, voit linkittää siihen sen pääosoitteella (https://minesweeper.us/miinaharava/permutaatio-ja-variaatiolaskin/), tai jos haluat lisätä linkin tiettyyn tulokseen, käytä painiketta ”Kopioi linkki leike­pöydälle”.

Voit myös upottaa tämän sivuston omalle sivu­stollesi iframe-elementin avulla. Jos haluat, että tämä sivu näyttää vain laskimen ja piilottaa kaiken muun sisällön (valikot, artikkelin jne.), voit käyttää seuraavaa URL-osoitetta src-attribuu­tissa: https://minesweeper.us/miinaharava/permutaatio-ja-variaatiolaskin/?iframe=1.

Maini­tsethan tämän sivun sivu­stollasi viittaa­malla siihen napsautet­tavalla linkillä. Voit myös ilmoittaa meille, että olet upottanut sovel­luksemme sivu­stollesi, lähet­tämällä sähköpostia osoit­teeseen contact@simiade.com. Tällöin pystymme tiedottamaan sinulle mahdolli­sista sovel­lukseen teke­mistämme muutoksista, jotka saattavat vaatia sivusto­vastaajia päivit­tämään tapaa, jolla sivustot näyttävät sovelluksen.

Lähteet

Charalambides, Charalambos A., Enumerative Combinatorics, CRC Press, 2002.

Ota yhteyttä

Jos sinulla on kysyttävää, kommentteja tai ehdotuksia, voit jättää palautetta tänne:

Tai voit ottaa meihin yhteyttä postitse:

Simiade
Adam Narkiewicz
Plac Bankowy 2
00-095 Warszawa
Puola
+48 728235409
contact@simiade.com
https://simiade.com/fi/

Syötä ei-negatiivinen kokonaisluku. Älä käytä erottimia – vain numerot sallitaan.

Kantaluvun on oltava kokonaisluku väliltä 2…36.

Lasketaan :n pituisia variaatioita alkion joukolle. Odota hetki...

(toistoilla)

Näytetään tuloksia...

Tapahtui virhe:

(-kantainen)

Variaatioissa, joissa toistot on sallittu, n ja k eivät voi kumpikin olla 0.

Permutaatio- ja variaatiolaskin | Suuret luvut |

P(,)

U(,)

n ei voi olla pienempi kuin k.

variaatiot n=, k=

-kantainen

toistoilla

Tällä hetkellä toistoja ei sallita

Tällä hetkellä toistot on sallittu

Palautteesi on lähetetty. Kiitos!