Formel för att räkna ut alla kombinationer av en mängd
Jag har läst om permutationer och kombinationer på matteboken.se (Matte 5). Nu undrar jag om det finns nån formel för att räkna ut detta och vad kallas den i så fall:
C(5,5) + C(5,4) + C(5,3) + C(5,2) + C(5,1)
Hårddisksson skrev:Jag har läst om permutationer och kombinationer på matteboken.se (Matte 5). Nu undrar jag om det finns nån formel för att räkna ut detta och vad kallas den i så fall:
C(5,5) + C(5,4) + C(5,3) + C(5,2) + C(5,1)
Hej och välkommen till pluggakuten!
Vet ej vad den kallas eller om den har något namn. Det finns en metod jag känner till för att räkna ut antal kombinationer på detta sätt.
Tackar!
Det där ser ut att vara formeln för att beräkna kombinationer, men jag försökte räkna ut summan av flera olika kombinationer. Jag håller på och skriver ett program och funderade på hur jag räknar ut (alltså rent allmänt - inte hur jag skriver koden) något som borde vara lätt att räkna ut, men jag har glömt typ all matte sen gymnasiet...
Så problemet är: det finns totalt 5 färger. Ett färgval består av 1 till 5 färger (ordning är irrelevant). Om färgval 1 är vit + blå, kan färgval 2 inte vara blå + vit (eftersom den kombinationen redan finns i färgval 1 fast i en annan ordning).
Om jag tänker rätt så kan detta räknas ut med C(5,5) + C(5,4) + C(5,3) + C(5,2) + C(5,1) vilken blir 31. Jag hoppas jag inte är helt ute och cyklar nu?
Hårddisksson skrev:Tackar!
Det där ser ut att vara formeln för att beräkna kombinationer, men jag försökte räkna ut summan av flera olika kombinationer. Jag håller på och skriver ett program och funderade på hur jag räknar ut (alltså rent allmänt - inte hur jag skriver koden) något som borde vara lätt att räkna ut, men jag har glömt typ all matte sen gymnasiet...
Så problemet är: det finns totalt 5 färger. Ett färgval består av 1 till 5 färger (ordning är irrelevant). Om färgval 1 är vit + blå, kan färgval 2 inte vara blå + vit (eftersom den kombinationen redan finns i färgval 1 fast i en annan ordning).
Om jag tänker rätt så kan detta räknas ut med C(5,5) + C(5,4) + C(5,3) + C(5,2) + C(5,1) vilken blir 31. Jag hoppas jag inte är helt ute och cyklar nu?
Jag är inte så duktig på programmering men kan du inte få datorn att räkna ut följande med någon kod: Det är ju i princip vad som händer i dit fall, tror du att det kan funka ?
Det ser ut som summan av en hel rad i Pascals triangel, utom sista ettan, så då är det 2^n-1.
En tolkning jag försöker popularisera är att C(n,k) kan ses som antalet binära strängar med k ettor och (n - k) nollor.
C(5,1) är antalet i {00001, 00010, 00100, 01000, 10000}
C(5,3) är antalet i {00111, 01011, 10011, 01101, 10101, 11001, 01110, 10110, 11010, 11100}
Kopplingen till delmängder är rak.
En sådan sträng 01101 kan tänkas motsvara en beskrivning av vilka 3 element som man ska plocka ut ut en mängd med 5 element gneom att tänka sig att ettornas positioner säger vilka element som ska plockas ut. Exempelvis för {a,b,c,d,e} motsvarar 01101 ~ {b,c,e} eftersom ettorna är på positioner 2,3 och 5, så är 2:a (b), 3:e (c) och 5:e (e) elementen som är i den motsvarande mängden. Särskillt användbart om man vill skriva kod då binära representationer är enkla att koda.
Summor av detta slag som i uppgiften kan nu tolkas som antalsräkning av olika typer av binära strängar och man kan använda sina kunskaper om binära tal eller kombinatorik för sekvenser.
(Standardmetoden för att angripa detta problem är dock den som Laguna uppmärksammar)
Tack för era svar! Jag är inte så bra på matte och var mest nyfiken på hur man kunde förklara problemet jag beskrev i matematiska termer, vilket ni gjorde. :) Är som sagt ringrostig och hade helt glömt vad Pascals triangel var.
Nu ska jag försöka skriva en rekursiv funktion för att räkna ut detta (vilken man säkert kan om man läst datateknik eller liknande på högskola men det har inte jag haha).
Hårddisksson skrev:Tack för era svar! Jag är inte så bra på matte och var mest nyfiken på hur man kunde förklara problemet jag beskrev i matematiska termer, vilket ni gjorde. :) Är som sagt ringrostig och hade helt glömt vad Pascals triangel var.
Nu ska jag försöka skriva en rekursiv funktion för att räkna ut detta (vilken man säkert kan om man läst datateknik eller liknande på högskola men det har inte jag haha).
Roligt att du programmerar redan, jag kör matten först och eventuellt blir det spelutveckling!