You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(Detta är så jag minns algoritmen, variabelnamnen kan variera i koden.)
I algoritmen gör man det enkelt för sig och tänker sig att alla bord sitter ihop i ett enda långbord.
Till detta långbord har vi två listor av sittande gäster, en för varje sida bordet.
List leftSide, list rightSide.
Initial data
Vi har 4 typer av gäster:
Student, tjej
Student, kille
Företags-representant, tjej
Företags-representant, kille
Om varje student vet vi iaf namn, kön och vilken sektion de går i.
Om varje företagare vet vi iaf namn, företag och sektioner företaget är intresserad av. Vi kanske inte har alla namn på representanter, det kan man lösa genom att ha "Tetra pak 1, tetra pak 2..." osv.
Steg 1: Justera listorna.
Det första man gör är att justera så att dessa 4 listor är lika stora (släng över några från kill till tjejsidan exempelvis). Sedan kan man shuffle'a listorna.
Steg 2: Placera studenter
På ena sidan bordet, ex: leftSide, fylla upp platserna med varannan kill och tjej student.
Steg 3: Placera företagare
Alternera igen mellan tjej och kille mellan företagare. Tänk på att alternera kön tvärtom än studenter, så att killar sitter mitt emot tjejer.
För varje position i rightSide man ska fylla med en företagare, så kollar man vilka tre studenter som sitter tvärs över. Den positionen i rightside ska man fylla men den företagaren vars företag söker så många av de sektioner av de tre studenterna som möjligt.
Steg 4: Kasta över gäster mellan bordssidorna
Vi tänkte att det var tråkigt om företagare var på en sida och studenter på andra sidan. Kanske det fungerar ändå. Men vi valde att byta plats med hälften av företagarna och studenter. Så här:
Från: (S => student, F => företagare)
De två första lätt vi vara, de två nästa kastade vi över diagonalt mellan listorna. Vi gjorde det diagonalt för att bibehålla varannan tjej och varannan kille. Resultatet blir att längs en sida är det student, student, företagare, företagare, student, student, företagare....
Här kommer buggen in. Eftersom vi jämförde företagaren med de tre sektionerna som satt mitt emot kommer vi i den diagonala omslängningen göra så att de inte längre är grannar. Kolla exempelvis på S2 och F3 i illustrationen ovan.
För att lösa buggen måste man i jämförelsen av sektioner ta i beaktning om man kommer kastas diagonalt och isf jämföras med de studenter man kommer ha som grannar sen.
Steg 5: Kapa upp långbordet till de faktiskta borden
Ta de långa listorna av placering och fyll upp platserna till de faktiska borden med rätt storlek.
The text was updated successfully, but these errors were encountered:
(Detta är så jag minns algoritmen, variabelnamnen kan variera i koden.)
I algoritmen gör man det enkelt för sig och tänker sig att alla bord sitter ihop i ett enda långbord.
Till detta långbord har vi två listor av sittande gäster, en för varje sida bordet.
List leftSide, list rightSide.
Initial data
Vi har 4 typer av gäster:
Om varje student vet vi iaf namn, kön och vilken sektion de går i.
Om varje företagare vet vi iaf namn, företag och sektioner företaget är intresserad av. Vi kanske inte har alla namn på representanter, det kan man lösa genom att ha "Tetra pak 1, tetra pak 2..." osv.
Steg 1: Justera listorna.
Det första man gör är att justera så att dessa 4 listor är lika stora (släng över några från kill till tjejsidan exempelvis). Sedan kan man shuffle'a listorna.
Steg 2: Placera studenter
På ena sidan bordet, ex: leftSide, fylla upp platserna med varannan kill och tjej student.
Steg 3: Placera företagare
Alternera igen mellan tjej och kille mellan företagare. Tänk på att alternera kön tvärtom än studenter, så att killar sitter mitt emot tjejer.
För varje position i rightSide man ska fylla med en företagare, så kollar man vilka tre studenter som sitter tvärs över. Den positionen i rightside ska man fylla men den företagaren vars företag söker så många av de sektioner av de tre studenterna som möjligt.
Steg 4: Kasta över gäster mellan bordssidorna
Vi tänkte att det var tråkigt om företagare var på en sida och studenter på andra sidan. Kanske det fungerar ändå. Men vi valde att byta plats med hälften av företagarna och studenter. Så här:
Från: (S => student, F => företagare)
S1 | | F1
S2 | | F2
S3 | | F3
S4 | | F4
S5 | | F5
S6 | | F6
S7 | | F7
S8 | | F8
Till:
S1 | | F1
S2 | | F2
F4 | | S4
F3 | | S3
S5 | | F5
S6 | | F6
F8 | | S8
F7 | | S7
De två första lätt vi vara, de två nästa kastade vi över diagonalt mellan listorna. Vi gjorde det diagonalt för att bibehålla varannan tjej och varannan kille. Resultatet blir att längs en sida är det student, student, företagare, företagare, student, student, företagare....
Här kommer buggen in. Eftersom vi jämförde företagaren med de tre sektionerna som satt mitt emot kommer vi i den diagonala omslängningen göra så att de inte längre är grannar. Kolla exempelvis på S2 och F3 i illustrationen ovan.
För att lösa buggen måste man i jämförelsen av sektioner ta i beaktning om man kommer kastas diagonalt och isf jämföras med de studenter man kommer ha som grannar sen.
Steg 5: Kapa upp långbordet till de faktiskta borden
Ta de långa listorna av placering och fyll upp platserna till de faktiska borden med rätt storlek.
The text was updated successfully, but these errors were encountered: