PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelNy klurig fråga... Vilka celler bildar summan?Ny klurig fråga... Vilka celler bildar summan?
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-07-08 10:45
 

Niklas Jansson skrev

Vad gäller första frågan handlar det ju bara om UBound(vvnt, 2) till UBound(vvnt, 1) och vvnt(1, i) till vvnt(i, 1).

Ok, jag ska alltså byta ut ovanstående om jag förstår rätt.

För andra frågan: Detta kallas för en "uttömmande sökning", närmare bestämt en "djupet först"-sökning. Det är det enklaste sättet att lösa problemet. En "Bredden först"-sökning hade förmodligen gett svar tidigare (men fått köra lika länge).

Ok, vet inte vad "bredden först"- sökning innebär. Om sökningen tar tid, gör det inget för mig, bara inte datorn hänger sig, men det kanske är oundvikligt?

Jag tror att detta är vad som kallas ett NP-komplett problem (om det får finnas med negativa tal är det definitivt det), och att du därför inte kan hoppas på så mycket annat. Du kan förmodligen få lite bättre prestanda genom att sortera listan från störst till minst.

Jo, där finns med negativa tal. Ska prova med att sortera om listan.

Vågar man fråga vad du ska ha det till?

Jag har ett kontoutdrag där jag försöker sammanställa insättningar och uttag. Där ett uttag syftar till flera insättningar.

Nytt inlägg
 2009-07-08 14:52
Accepterat svar 

Det enklaste sättet att se att det funkar och inte hänger sig är att börja med fem tal, och sen bygga på med tal efter tal tills du märker att det börjar ta väldigt lång tid. I och med att du har med negativa tal så bör du istället sortera om den så att den börjar med de "mest negativa talen" och slutar med de högsta, annars fungerar det nog inte alls.

Detta har "komplexiteten 2^n", vilket innebär att det för varje nytt tal kommer ta dubbelt så lång tid, tiden det tar ökar alltså oerhört snabbt. Det kan också gå att snabba upp genom att vara noggrannare med typer och låta bli att konkatenera strängar.

Men man ska alltså ha klart för sig att tiden ökar enormt. om 5 tal tar en sekund så tar 10 tal 32 sekunder, 15 tal 1024 sekunder (=20 minuter), 20 tal 32768 sekunder (=10 timmar).

För att kunna lösa såna här problem måste man därför oftast hantera problemet i några steg i först, där man sållar bort så många alternativ som möjligt.

Nytt inlägg
 2009-07-10 20:47
 

Tack Niklas för din förklaring och för nedlagd tid. Även tack till "excelspecialisten"!

Fattar inte allt men förstår nog helheten och problemet. Jag har provat att sortera och plocka bort lite och kan ändå använda koden till en del av arbetet jag håller på med.

Anser tråden för närvarande vara besvarad. Trevlig sommar!

Nytt inlägg
 2009-08-12 09:31
 

Har du fått igång det alls?

när du klistrat in koden i VBA-editorn så får du köra den, enklast genom att ställa dig någonstans i i

Public Sub diSum()

och trycka på f5


Excelspecialisten

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2009-08-14 13:02
 

Yes, det funkar nu.

Tyvärr så klarar den inte så många tal utan jag får ta ett mindre antal tal åt gången.

Tack, som sagt, för hjälpen!

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelNy klurig fråga... Vilka celler bildar summan?Ny klurig fråga... Vilka celler bildar summan?

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter