41 messaggi dal 12 agosto 2004
AIUTO!

Data una matrice ad una dimensione contenente degli importi, devo trovare la combinazione di somme migliore per ottenere come risultato un numero che si avvicini più possibile ad un totale già conosciuto. Sono in panne, qualcuno mi dà gentilmente una mano?
69 messaggi dal 23 settembre 2001
www.sballai.com
Prova con qualcosa del genere
......
scarto = 1000000  ' immettere lo scarto
For j = 0 To UBound(matrice)-1
      For i = 1 to UBound(matrice)
            if i = j then exit for
            somma = matrice(j)+matrice(i) 
            if somma<totale+scarto or somma>totale-scarto then
                a = matrice(j)
                b = matrice(i)
                scarto = abs(a-b)
            end if
      Next
Next
......
Response.write("la combinazione migliore è: " & a & " e " & b & " con uno scarto di " & scarto


Saluti.
41 messaggi dal 12 agosto 2004
Grazie mille, domattina ci provo poi ti dico!
41 messaggi dal 12 agosto 2004
Ciao, scusa ma ho avuto qualche problema negli ultimi giorni, il PC è rimasto nel cassetto.
Ora ci provo, poi ti dico! Grazie
41 messaggi dal 12 agosto 2004
Ecco, ci ho provato ma devo lavorarci un pò su.

Questo è il codice:

<%
dim matrice(8)
matrice(1)=40
matrice(2)=20
matrice(3)=15
matrice(4)=120
matrice(5)=180
matrice(6)=60
matrice(7)=30
matrice(8)=15

somma=0
totale=200
a=0
b=0

scarto = 5 ' immettere lo scarto

For j = 0 To UBound(matrice)-1
For i = 1 to UBound(matrice)
if i = j then
exit for
end if
somma = matrice(j)+matrice(i)
if somma<totale+scarto or somma>totale-scarto then
a = matrice(j)
b = matrice(i)
scarto = abs(a-b)
end if
Next
Next

Response.write("la combinazione migliore è: " & a & " e " & b & " con uno scarto di " & scarto)
%>

qualsiasi valore di 'totale' e 'scarto' mi portano lo stesso risultato:

la combinazione migliore è: 30 e 60 con uno scarto di 30

Devo farlo 'girare' sulla carta! Poi ti dico...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.