En ligning – 3 ubekendte

by Jesper august 14, 2009 07:23

Sidder lige nu med et, for mig, komplekst problem:

  • Et hotel har 100 ens værelser.
  • Hvert værelse har en kapacitet (antal senge)
  • Hvert værelse har minimum kapacitet
  • Der bookes samlet antal

Hvordan regner man det bedste antal værelser ud? Givet at man helst vil fylde værelser, og helst vil afvise så få som muligt.

Jeg resonerer mig frem til følgende ligning:

AntalØnsket = x*max + y*min + rest

Løsning for mindste rest og største x foretrækkes.

Jeg har lavet følgende algoritme:

private static int CalcRooms(int visitors, int max, int min)
{
    int largestY = 0, largestX = 0, biggest = 0;
    for (int y = 0; visitors >= y * min; y++)
    {
        for (int x = 0; visitors >= (y * min + x * max); x++)
        {
            if (y * min + x * max > biggest)
            {
                biggest = y * min + x * max;
                largestY = y;
                largestX = x;
            }
        }
    }
    return largestY + largestX;
}

Jeg tror det er en løsning på udfordringen, men er det den simpleste, eller har du en smartere løsning?

God weekend…

Tags:

Fredag

Kommentarerne er lukkede

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen | Modified by Mooglegiant

About

Mit navn er Jesper Jensen, og jeg arbejder til dagligt som web-udvikler hos DGI, hvor mit speciale er klientside applikationer. Før det var jeg nogle år i robotbranchen, hvor jeg arbejdede med 3D simulering og system koordinering. Jeg elsker webudvikling, og specielt JavaScript har min interesse. Jeg har blogget om mine oplevelser med udvikling siden 2004

Calendar

<<  september 2010  >>
mationtofr
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

RecentComments

Comment RSS