"Det er bedst at have hold med hhv.

Steven 🌞 Snedkers billede
Af Steven 🌞 Snedker den 29. oktober 2015 - 9:46 [9]

Originally shared by Steven Snedker

"Det er bedst at have hold med hhv. 3 og 5, når man spiller League of Legends" fik jeg at vide før sidste LAN-party i Casa Snedker. "Så bare vi ikke bliver.... 7, kan vi allesammen spille."

Det der med at noget skal gå op i 3 og 5 mindede mig om den klassiske programmeringsopgave FIzzBuzz og fik mig til at tænke på hvor svært det i virkeligheden er at danne hold af arbitrær størrelse.

Lidt hovedregning viste, at det faktisk var meget let. Bare der er spillere nok,  kan man ganske hurtigt indpasse alle fremmødte spillere på et hold.

"Kunne man ikke lave et skema over bænkevarmer-risikoen ved forskellige antal deltagere og holdstørrelser?", var min næste tanke.

Jo, med lidt tweaket FizzBuzz-kode fik jeg nogenlunde hurtigt rørt en bænkevarmer-visualisering sammen.

Og det er så her jeg påkalder tankekraft fra typer som Toke Eskildsen Claus Dahl og andre rigtige matematikere.

Kan de mønstre vi ser udtrykkes/forklares mere elegant end:

"Hold1*heltal = hold2 medfører altid bænkevarmere"

"Lige antal på begge hold medfører bænkevarmere for evigt"

"Bænkevarmere holder op med at være et problem lige lidt før hold1*hold2". (Et konkret eksempel er hold1 = 20, hold2= 27. Sidste bænkevarmer optræder ved 493 spillere. Hvorfor? Kan man udtrykke bænkevarmerophørspunktet som en funktion af de to holdstørrelser?)

Interesserede kan indsætte forskellige holdstørrelser i URL'en på

http://stevensnedker.com/lol.php?lillehold=3&storthold=5

Kommentarer


          Toke Eskildsen
        s billede

Heads-up til Thomas Egense og et hurtigt bud: (størrelseA-1)*(størrelseB-1)


          Toke Eskildsen
        s billede

Hmm... Problem hvis størrelseA = størrelseB eller de begge er heltal.

Steven Snedkers billede

Passer perfekt for alle holdkombinationer, der kan nå bænkevarmerfrihedspunktet, Toke Eskildsen . Du behøver slet ikke kokketere med at du ikke er rigtig matematiker. Det løber i blodet.

Steven Snedkers billede

Gad vide hvordan formlen, der udregner om bænkevarmerfrihedspunktet nås, ser ud.

Hvis hold1 og hold2 begge er ens eller begge er lige eller hvis hold1 går op i hold2: ingen mulighed for bænkevarmerfrihedspunkt.


          Toke Eskildsen
        s billede

Forskellen er at jeg ikke ved hvorfor det er tilfældet og derfor ikke så fælden med at den ene går op i den anden. Skal jeg smide mere gætteri ind bliver det noget med primtalsfaktorisering.

Steven Snedkers billede

Min første tanke var også at primtal garanteret ville opføre sig åndssvagt og måske aldrig nå bænkevarmerfrihedspunktet. Men det kunne jeg hurtigt se ikke var tilfældet (da jeg havde lavet koden). Det lader til at "hvis hold1 og hold2 har fælles divisorer (fx. 2, hold1) når vi aldrig bænkevarmerfrihedspunktet. Men ellers når vi det og vi når det hurtigt, (hold1-1)*(hold-2)."


          Thomas Egense
        s billede

Hemmeligheden er største fælles divisor af de 2 tal.

Hvis største fælles divisor for de to holdstørrelser ikke er 1 så vil der blive ved med at være huller lige meget for mange deltagere man er.  Hvis GCD(A,B)=1 kaldes de 2 tal (hold størrelser) også indbyrdes primiske.

 Hvis man tillader negative holdstørrelser, så ville alle tal større end 1 faktisk være muligt hvis hold størrelserne er indbyrdes primiske. Men vi gider ikke negative hold størrelser

og kan beregne buzz-tallet således.

Der benyttes Euclidean algorithm til at skrive GCD (som er 1) ved at finde 2 tal M og N således.

M*A+N*B=1

Hvis GCD(A,.B)=1 så udregnes buzz faktor:

Buzz faktor=AB-A-B+1

F.eks. for  A=7 og B=11

7*11-7-11=77-7-11+1=60

Steven Snedkers billede

Og nu med udregninger og kommentarer: http://stevensnedker.com/lol.php?lillehold=7&storthold=11


          Thomas Egense
        s billede

Du kunne lave ny php-side som laver en tabel med de 2 hold-størrelser på akserne og så buzz-faktor som indgang. (og bare et X hvis GCD ikke er 1)

Tilføj kommentar

Ja, dette er et dumt spørgsmål med et nemt svar, men det er der kun fordi spam-robotter er for dumme til at besvare den slags, mens mennesker ikke er.
👍

Log ind eller registrer dig for at lægge langtidsholdbare, konstruktive kommentarer.
Registrerede brugere får bedre editor og flere likes.