En nisseparringsalgoritme

Det er snart blevet denne tid på året – tid til den store nisseparring.

Hvert år laver vi nisseleg på morsverden, hvor hvert tilmeldt medlem får tildelt en hemmelig nisse. Eneste krav er at man skal have sendt en gave inden jul, men man er velkommen til at gøre mere ud af det, enten ved at sende flere gave, sende hilsener eller andet.

Jeg har et random script, som jeg kører efter tilmeldingsfristen. Denne tager en sorteret liste med alle de tilmeldte og parrer den med en randomiseret liste, dog må et medlem naturligvis ikke matches med sig selv. Ellers simpelt og lige ud af landevejen, enhver får en anden nisse og man kan godt komme til at nisse hinanden.

I år bliver det ekstra frækt, for i år havde jeg tænkt mig at tage hensyn til eventuelle niveauforskelle hvis det ønskes. Det kan være niveauforskelle i prisklasse af gave samt i ambitionsniveau i nisseriet. Jeg har lavet en stemningsafstemning her. Det ses ud fra denne at prisen for de fleste ikke er så vigtigt. Bare der er tanke bag. Der er dog enkelte der godt kunne tænke sig at blive matchet på prisniveau.

Det betyder lidt mere med ambitionsniveau. Måske har man lyst til at få lidt igen for sine anstrengelser hvis man godt kan lide at gøre noget ud af det eller måske vil man ikke sidde med dårlig samvittighed hvis man blot vil nøjes med at opfylde bundkravet.

Jeg har derfor tænkt mig som minimum at lade tilmeldingen have en mulighed for at vælge at blive ambitionsmatchet. Muligvis også prismatchet, men det kommer lidt an på hvor svært det så bliver. Det skal jo også gå op i sidste ende. Selvom jeg dog vil gøre opmærksom på at der ikke vil komme til at være nogen garantier! Blot en bonus hvis det løser sig.

For ikke at gøre det for komplekst, har jeg tænkt mig at der blot skal være to niveauer på både pris- og ambitionsmatch. Man angiver hvilket niveau man SELV regner med at deltage i og derefter om man ønsker at blive matchet.

Fx:
prisniveau 1
prisniveau 2
ønsker du at blive matchet på pris? JA/NEJ

ambitionsniveau 1
ambitionsniveau 2
ønsker du at blive matchet på ambition? JA/NEJ

Hvis man stemmer nej, kan man matches med hvem som helst inden for pris eller ambition, og hvis man stemmer ja, bliver man kun matchet med dem der er i samme niveau som en selv. Og det skal naturligvis hænge sammen, de to variable, hvis jeg vælger at implementere begge.

Jeg skal derfor have fundet en smart algoritme jeg kan bruge til mit nye smarte script anno 2012. Og at finde ud af om det i det hele taget er realistisk at forsøge at matche begge eller om jeg skal nøjes med den ene. Jeg kan sige at der plejer at være ca. 100 tilmeldte, hvis tallet gør nogen forskel.

Hvis nogen er friske på en lille matematisk udfordring her søndag aften, så er her en lille opgave! Kom med et bud på hvordan det matches og hvor sandsynligt det er at der findes et match til alle/det går op, enten med kun en variabel gældende eller med dem begge.

Jeg skal implementere tilmeldingsskema senest til i morgen, så der skal jeg have truffet et valg mht. hvad der er realistisk. Derefter er der en uge til at få bikset en algoritme sammen inden der skal parres nisser.