Oprettet ons. d. 25. juli 2012 kl. 17:09:23

juks
juks (17.342 point. Point ude: 1.340)

Besparelses algoritme (Clarke & wright) liste(afstande) =

Hej I forbindelse med en skole opgave er jeg igang med at lave en algoritme. men jeg er allerede havnet i et problem.

jeg har lavet en class til min afstande

    class Afstande
    {
        public int i { get; set; }
        public int j { get; set; }
        public double kant { get; set; }
}
dem har jeg i en liste _Afstande

nu skal jeg så have lavet en liste over alle mulige besparelser

si,j = ci,0 + c0,j − ci,j

men hvordan sikre jeg mig at jeg får udregnet det for alle punkter i listen

Skrevet ons. d. 25. juli 2012 kl. 18:48:47| #1

josh1987
josh1987 (2.102 point)
Du har ikke rigtig skrevet imellem hvor mange punkter eller bare 2?
jeg har lavet lille eks. på hvordan man gør det imellem 2

http://pastebin.com/ (...)

håber det er noget du kan bruge. Eller bare spørg igen.

Skrevet ons. d. 25. juli 2012 kl. 19:53:41| #2

Her er en mulig løsning hvor besparelser bliver gemt i et 2-dimsionelt array: http://pastebin.com/ (...)

Du kan også udvide din afstand-klasse med en besparelse-property og gemme dine beregninger i denne (altså på list-form, som du efterspurgte): http://pastebin.com/ (...)

Skrevet ons. d. 25. juli 2012 kl. 20:37:57| #3

juks
juks (17.342 point)
Jeg takker det var helt perfekt , måske ikke så hurtigt men det viker..

Tak til josh også ..

Skrevet ons. d. 25. juli 2012 kl. 20:56:21| #4

juks
juks (17.342 point)
må lige gentage tusind tak . har brugt hele dagne og set mig blind på det.. tusind tak

Skrevet ons. d. 25. juli 2012 kl. 21:00:22| #5

Hvis du bruger den version hvor afstande-klassen udvides kan du erstatte for-løkken med følgende:

foreach (var afstand in _afstande)
{
    var ci0 = afstand.i == 0 ? 0 : _afstande.Single(a => a.i == 0 && a.j == afstand.i).kant;
    var c0j = afstand.j == 0 ? 0 : _afstande.Single(a => a.i == 0 && a.j == afstand.j).kant;
    afstand.besparelse = ci0 + c0j - afstand.kant;
}

Det burde gå lidt hurtigere. Skal det gå endnu hurtigere så brug Parallel.ForEach i stedet.

Du kunne også overveje at gemme dine afstande i et 2-dimensionelt array, så man kan slå dem op i stedet for at søge listen igennem hele tiden.

Skrevet ons. d. 25. juli 2012 kl. 21:07:32| #6

juks
juks (17.342 point)
jaa men er lidt presset iht til at jeg snart skal aflevere så skal "bare" have programmet til at spille så må jeg´fin tune til min candidat i stedet :-)

Skrevet ons. d. 25. juli 2012 kl. 21:13:20| #7

Helt i orden. Pøj pøj med det :)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

C# Exception handling

Oprettet den 14. juni 2013 kl. 08.32
shako giver 60 point for svar | Giv et svar »

Login i ASP.NET

Oprettet den 12. juni 2013 kl. 13.54
bdef giver 30 point for svar | Giv et svar »

Array som property i Visual Studio

Oprettet den 12. juni 2013 kl. 13.21
HPCISCO giver 150 point for svar | Giv et svar »







Computerworld

Teaser billede

Test: Microsoft Surface Pro er fremtidens bærbare

Surface Pro er både en oplagt kontorkriger og en fantastisk flad følgesvend. Men den kan hurtigt komme til at koste dig dyrt. Vi har testet maskinen, som forsøger at være både tablet-pc og bærbar...

CIO

Teaser billede

Test: Microsoft Surface Pro er fremtidens bærbare

Surface Pro er både en oplagt kontorkriger og en fantastisk flad følgesvend. Men den kan hurtigt komme til at koste dig dyrt. Vi har testet maskinen, som forsøger at være både tablet-pc og bærbar...

Comon

Teaser billede

Test: Microsoft Surface Pro er fremtidens bærbare

Surface Pro er både en oplagt kontorkriger og en fantastisk flad følgesvend. Men den kan hurtigt komme til at koste dig dyrt. Vi har testet maskinen, som forsøger at være både tablet-pc og bærbar...

Channelworld

Teaser billede

Test: Microsoft Surface Pro er fremtidens bærbare

Surface Pro er både en oplagt kontorkriger og en fantastisk flad følgesvend. Men den kan hurtigt komme til at koste dig dyrt. Vi har testet maskinen, som forsøger at være både tablet-pc og bærbar...

White paper

Teaser billede

Hvilke it-risici kan du leve med?

Denne Computerworld Guide fokuserer på de elementer, der skal overvejes i forbindelse med investeringer i it-sikkerhed.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger