11. februar 2006 - 21:26
Der er
5 kommentarer og 1 løsning
Placere hold i grupper
Her er et lille hovedbrud.. Jeg har 5 hold der skal spille alle mod alle. Dem skal jeg have placeret i 5 grupper (altså 10 spil i alt) Hver gruppe må maks have 2 kampe. Een kamp består af 2 hold der møder hinanden. Det samme hold kan ikke spille mere end een gang i een gruppe Psudo kode velkommen - har man en placerings aloritme i C#/java/asp så er dette også velkommen.
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
11. februar 2006 - 23:37
#2
En mulig implementering: using System; namespace e687294 { class Program { private const int antalHold = 5; static void Main(string[] args) { // Definition af de centrale konstanter. int antalPlaceringer = antalHold; if (antalPlaceringer % 2 == 1) antalPlaceringer++; int halvAntalPlaceringer = antalPlaceringer / 2; int[] holdPlacering = new int[antalPlaceringer]; // Placering af holdene til runde 1. for (int holdNr = 0; holdNr < antalHold; holdNr++) holdPlacering[holdNr] = holdNr; if (antalHold < antalPlaceringer) holdPlacering[antalPlaceringer - 1] = -1; // Beregning af de forskellige runder. for (int rundeNr = 0; rundeNr < antalPlaceringer - 1; rundeNr++) { // Udskrivning af rundesn kampe. Console.WriteLine("Runde: {0}", rundeNr + 1); for (int kampNr = 0; kampNr < halvAntalPlaceringer; kampNr++) { Console.WriteLine(" Kamp: {0}", kampNr + 1); if (holdPlacering[kampNr] == -1) Console.WriteLine(" Hold {0} sidder over", holdPlacering[kampNr + halvAntalPlaceringer] + 1); else if (holdPlacering[kampNr + halvAntalPlaceringer] == -1) Console.WriteLine(" Hold {0} sidder over", holdPlacering[kampNr] + 1); else Console.WriteLine(" Hold {0} vs. hold {1}", holdPlacering[kampNr] + 1, holdPlacering[kampNr + halvAntalPlaceringer] + 1); } // Rotation af holdene efter Round-Robin algoritmen int temp = holdPlacering[halvAntalPlaceringer]; holdPlacering[halvAntalPlaceringer] = holdPlacering[1]; for (int placeringNr = 1; placeringNr <= halvAntalPlaceringer - 2; placeringNr++) holdPlacering[placeringNr] = holdPlacering[placeringNr + 1]; holdPlacering[halvAntalPlaceringer - 1] = holdPlacering[antalPlaceringer - 1]; for (int placeringNr = antalPlaceringer - 1; placeringNr >= halvAntalPlaceringer + 1; placeringNr--) holdPlacering[placeringNr] = holdPlacering[placeringNr - 1]; holdPlacering[halvAntalPlaceringer + 1] = temp; } } } }