---
title: "Kombinationer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/158805-kombinationer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "asp"
published: "2007-03-31T08:22:26.000Z"
updated: "2007-04-03T08:57:44.000Z"
replies: 10
views: 742
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/158805-kombinationer"
---

# Kombinationer

## #1 — asp, 2007-03-31T08:22Z

Hej.

Jag vill loopa igenom alla kombinationer som är möjliga. Vilka sätt kan man plocka fram 5 element ur en lista av 52 element där ordningen inte spelar någon roll. Dvs ABCDE är samma sak som EDCBA. Dessutom får inte elementen upprepas. Dvs AABCD är inte tillåtet eftersom det förekommer två A.

Ett sätt jag testade var att köra 5 nästlade for-loopar. Där jag i varje loop körde igenom från 1 till 52. Dock gjordes en kontroll så inte det upprepas samma tecken. Men nu får jag ju inte fram endast en av varje kombination - utan vissa kombinationer upprepas. Man kan ju göra en if-sats som kontrollerar så inte kombinationen redan finns - men finns det något smidigare sätt?

Att plocka fram 5 element ur 52 där ordningen inte spelar någon roll, finns det ca 3,2 element om jag minns rätt. Då gäller det att effektivisera koden. =)

Permalänk: https://www.webforum.nu/p/158805

## #2 — Toonster, 2007-03-31T08:58Z

Varför måste du loopa igenom allt? Kan du inte slumpa dessa 5? Misstänker att det är en kortlek du ska manipulera. Eller har jag missuppfattat?

Permalänk: https://www.webforum.nu/p/1952581

## #3 — asp, 2007-03-31T09:22Z

Därför jag vill få med exakt alla kombinationer. Då får jag med exakt procentsats när jag skall kolla sannolikheten för t.ex. kåk. Det är en kortlek ja.

Permalänk: https://www.webforum.nu/p/1952587

## #4 — headbug, 2007-03-31T12:38Z

Fast det du gör är ju att beräkna välkända sannolikheter, det vore väl effektivare att slå upp dom på nätet eller i vilken sannolikhetslärobok som helst och skapa konstanter med värdena.

Permalänk: https://www.webforum.nu/p/1952605

## #5 — asp, 2007-03-31T13:51Z

Ja, men då lär jag mig ju inget.

Permalänk: https://www.webforum.nu/p/1952611

## #6 — Toonster, 2007-04-01T17:21Z

Sannorlikheten kan du mycket enkelt räkna ut direkt utan att loopa kombinationerna. Både enklare och effektivare.

Permalänk: https://www.webforum.nu/p/1952918

## #7 — asp, 2007-04-01T20:20Z

Jo, men nu var min fråga HUR jag loopar igenom kombinationerna. Inte hur stor sannolikhet det är.

Permalänk: https://www.webforum.nu/p/1952975

## #8 — jabbalizer, 2007-04-02T11:01Z

(Java, men principen är samma.. Orkar inte riktigt tänka ut ifall detta förhindrar dubletter, men det kan ju du ta reda på.)

```
int nrCards = 52;

for(int c1 = 0; c1<nrCards-4; c1++)
for(int c2 = c1+1; c1<nrCards-3; c2++)
for(int c3 = c2+1; c1<nrCards-2; c3++)
for(int c4 = c3+1; c1<nrCards-1; c4++)
for(int c5 = c4+1; c1<nrCards; c5++)
{
        
}
```

Permalänk: https://www.webforum.nu/p/1953067

## #9 — jabbalizer, 2007-04-02T11:13Z

När jag funderat på det ett tag så kommer dessa kort alltid att vara i ordning (c1 alltid mindre än c2, c2 alltid mindre än c3 osv.) Du kan alltså inte få dubletter.

Permalänk: https://www.webforum.nu/p/1953069

## #10 — jabbalizer, 2007-04-02T11:15Z

....frågan är ju varför man vill köra koden i den innersta loopen \*många\* gånger :p

Permalänk: https://www.webforum.nu/p/1953071

## #11 — asp, 2007-04-03T08:57Z

Löste det med följande kod.

```
For a = 0 To UBound(kort)
	For b = a+1 To UBound(kort)
		For c = b+1 To UBound(kort)
			For d = c+1 To UBound(kort)
				For e = d+1 To UBound(kort)
					'...
				Next
			Next
		Next
	Next
Next
```

Permalänk: https://www.webforum.nu/p/1956161

---

Tråden på webben: https://www.webforum.nu/amne/asp/158805-kombinationer
