Avatar billede s-christensen Nybegynder
05. december 2002 - 16:09 Der er 13 kommentarer og
1 løsning

Hjælp til algoritme

Jeg skal bruge en algoritme der kan tage nedenstående hold og gøre så de ikke spiller på hjemmebane eller udebane to gange i streg, samt alle hold skal sidde over en gang, og samme hold må heller ikke spille mod hinanden to gange i streg. Algoritmen skal desuden gerne kunne klare et variabelt antal hold.

Hold 1 - Hold 1
Hold 1 - Hold 2
Hold 1 - Hold 3
Hold 1 – Hold 4
Hold 1 - Hold 5

Hold 2 - Hold 1
Hold 2 - Hold 2
Hold 2 - Hold 3
Hold 2 - Hold 4
Hold 2 - Hold 5

Hold 3 - Hold 1
Hold 3 - Hold 2
Hold 3 - Hold 3
Hold 3 - Hold 4
Hold 3 - Hold 5

Hold 4 - Hold 1
Hold 4 - Hold 2
Hold 4 - Hold 3
Hold 4 - Hold 4
Hold 4 - Hold 5

Hold 5 - Hold 1
Hold 5 - Hold 2
Hold 5 - Hold 3
Hold 5 - Hold 4
Hold 5 - Hold 5

Er kommet frem til at hvis runde = hold nr, eller runde er lige hold nr + antal, så skal holdet side over...
Avatar billede jakoba Nybegynder
06. december 2002 - 07:11 #1
Jeg kender ikke en pind til fodbold, så du må fortælle lidt mere.

"to gange i streg" er det det samme som "to gange lige efter ninanden" ?

Jeg gætter på at alle hold har en hjemmebane. og at i alle kampe skal eet af holdene være på hjemmebane. Er det korrekt ?

hvormange kampe skal der ialt spilles hvis der er:
2 hold ?
3 hold ?
4 hold ?
5 hold ?

mvh JakobA
Avatar billede s-christensen Nybegynder
06. december 2002 - 08:29 #2
>jakoba

to gange i streg = to gange lige efter hinanden
Ja et hold skal være på hjemmebane, men et hold må ikke spille på hjemmebane to runder efter hinanden. Alle hold skal møde hinanden på hjemmebane og udebane.

2 hold = 2kampe
3 hold = 6 kampe
4 hold = 12 kampe
5 hold = 20 kampe'

antal kampe er lig med: (antal hold*antal hold) - antal hold
Avatar billede riversen Nybegynder
06. december 2002 - 16:59 #3
jakoba: arbejder du stadig på det, eller har du opgivet? eller måske konstateret at det ikke er muligt
Avatar billede jakoba Nybegynder
07. december 2002 - 05:39 #4
Hej, jeg sitter ikke 24-7 og svarer :-). men nu jeg har hørt dine svar skulle den gerne komme iløbet af dagen.

mvh JakobA
Avatar billede jakoba Nybegynder
07. december 2002 - 09:58 #5
Hum. dine regler kan ihvertfald ikke 100% overholdes:

Regel 1: der må ikke spilles imod samme modstander 2 kanpdage i træk

med 2 hold kan regel 1 ikke overholdes. de har ikke andre end hinanden at spille med :-(
  (eller kan vi indføje en extra kampdage hvor begge hold 'sidder over' og på den måde sige at regel 1 wr overholdt ?)

Regel 2: alle hold skal spille skiftevis på udebane og hjemmebane

med 3 hold skal der spilles følgende kampe:

bane  1        2        3
      1-2      tom      tom 
      tom      2-3      tom
      tom      tom      3-1
      1-3      tom      tom
      tom      tom      3-2
      tom      2-1      tom
der findes ingen permutation af de seks linier hvor både regel 1 og regel 2 er overholdt. ( prøv selv, der er kun 6! (720) mulige rækkefølger at arrangere de 6 linier :-))

Så du kommer til enten at opgive eller også give køb på nogen krav :-(

mvh JakobA
Avatar billede riversen Nybegynder
07. december 2002 - 10:09 #6
nu er jeg i gruppe med s-christensen. kravet om 2 hjemmebaner/udebaner i træk skal overholdes...det med at 1,2 og så 2,1 kommer lige i træk gør ikke så meget
Avatar billede jakoba Nybegynder
07. december 2002 - 14:01 #7
Gah, nej den går ikke. selv med lempelse af reglel 1:

4 hold:
bane    1      2      3    4
      1-3    2-4    tom  tom
      tom    tom    3-1  4-2
      1-4    2-3    tom  tom
      tom    tom    3-2  4-1
... nu skal hold 1 og hold 2 spille imod hinanden, og det kan de ikke komme til uden at regel 2 bliver brudt. ditto for hold 3 og 4
      1-2    tom    3-4  tom
      tom    2-1    tom  4-3

Såvidt jeg kan se vil det samme ske hver gang der er et lige antal hold.

Jeg stopper her,

Det er ikke eentydigt bevist at opgaven er umulig, så lad spørgsmålet stå lidt, måske det kan lade sig gøre selvom jeg ikke kan hitte ud af det.

mvh JakobA
Avatar billede riversen Nybegynder
07. december 2002 - 14:04 #8
Avatar billede jakoba Nybegynder
08. december 2002 - 01:38 #9
Ja det ligner en god praktisk løsning :-)
Avatar billede s-christensen Nybegynder
09. december 2002 - 08:26 #10
jakoba: Kan du ikke ligge et svar! - Jeg har fået løst problemet.
Avatar billede rosted Nybegynder
09. december 2002 - 08:36 #11
Måske du kan fortælle hvordan du løste det?
Avatar billede articfruit Nybegynder
09. december 2002 - 09:01 #12
Jeg har en løsning til jeres problem, den virker med alle antal ulige hold. Der vil dog altid være en gang at hvert hold spiller på hjemme/ude bane to gange i træk!! Det kan ikke undgås... Kan I ikke lige sende en mail på mikkel@hojtider.dk ? Så skal i få en grundig forklaring og et stykke java kode I kan bruge, i løbet af i dag!
Avatar billede articfruit Nybegynder
09. december 2002 - 10:03 #13
1-3    15-4    14-5    13-6    12-7    11-8    10-9
2-4    1-5    15-6    14-7    13-8    12-9    11-10
3-5    2-6    1-7    15-8    14-9    13-10    12-11
4-6    3-7    2-8    1-9    15-10    14-11    13-12
5-7    4-8    3-9    2-10    1-11    15-12    14-13
6-8    5-9    4-10    3-11    2-12    1-13    15-14
7-9    6-10    5-11    4-12    3-13    2-14    1-15
8-10    7-11    6-12    5-13    4-14    3-15    2-1
9-11    8-12    7-13    6-14    5-15    4-1    3-2
10-12    9-13    8-14    7-15    6-1    5-2    4-3
11-13    10-14    9-15    8-1    7-2    6-3    5-4
12-14    11-15    10-1    9-2    8-3    7-4    6-5
13-15    12-1    11-2    10-3    9-4    8-5    7-6
14-1    13-2    12-3    11-4    10-5    9-6    8-7
15-2    14-3    14-4    12-5    11-6    10-7    9-8

Sådan her, dette er alle de kampe der skal spilles i første runde(1. halvdel af sæsonen) Så er det jo bare at spejlvende det hele når der skal spilles returkamp, det kan faktisk gost lase sig gøre at de ikke spiller hjemme to gange i træk, men så ska de til gengæld en gang spille mod samme hold lige efter hinanden og dette synes jeg ikke er optimalt. Hvis i kigger, så er det fra toppen af og mod højre alle de kampe der skal spilles i første runde osv...
første kamp i første runde er 1-3. næste kamp er så det første hold -1 (1-1 = 15) så det næste hold er 15 da det er 15 hold I arbejder med, andet hold hold i anden kamp er så udeholdet fra første kamp +1 (3+1 = 4) så det altså er 15-4 i anden kamp i første runde, sådan fortsætter det så indtil holdene begynder at overlappe altså her 10-9. rækkerne nedaf udfyldes i stigende orden 1 2 3 4 5 6 ..... 14 15 1 2 3 osv...

Er I med? Ellers så spørg, men kan I følge meningen lidt, der er selvfølgelig flere måder at programmere det på, men jeg synes det er op til jer at bestemme hvordan i helt præcist vil gøre det.
NB. Ovenstående er selvfølgelig ikke den endegyldige turneringsplan runderne skal lige blandes for at overholde reglen om hjemme/ude bane! ta først runde et, så den lige efter den midterste runde (her 8, altså tag så 9)så 2 og 10 osv.. således at det ser sådan ud!

1-3    15-4    14-5    13-6    12-7    11-8    10-9
9-11    8-12    7-13    6-14    5-15    4-1    3-2
2-4    1-5    15-6    14-7    13-8    12-9    11-10
10-12    9-13    8-14    7-15    6-1    5-2    4-3
3-5    2-6    1-7    15-8    14-9    13-10    12-11
11-13    10-14    9-15    8-1    7-2    6-3    5-4
4-6    3-7    2-8    1-9    15-10    14-11    13-12
12-14    11-15    10-1    9-2    8-3    7-4    6-5
5-7    4-8    3-9    2-10    1-11    15-12    14-13
13-15    12-1    11-2    10-3    9-4    8-5    7-6
6-8    5-9    4-10    3-11    2-12    1-13    15-14
14-1    13-2    12-3    11-4    10-5    9-6    8-7
7-9    6-10    5-11    4-12    3-13    2-14    1-15
15-2    14-3    13-4    12-5    11-6    10-7    9-8
8-10    7-11    6-12    5-13    4-14    3-15    2-1
Avatar billede s-christensen Nybegynder
09. december 2002 - 10:56 #14
OK. Det er en bedre løsning, end den jeg havde...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester