Newsgroup: it.comp.appl.access
Titolo: Problema algoritmo...

Ho 56 record con prezzi che variano
da 19 A 198 EUR.
Come faccio a far saltare fuori un combinazione di
prezzi che fra di loro sommano un totale = 100 EUR ??
Beh, quello che importa 100 EUR č giŕ fatto...
Grazie a che mi darŕ un suggerimento per
questo algoritmo...
Ciao, Davide

 questo algoritmo...
Ho proato a risolvere il tuo problema con 2 sottoquery ed un prodotto 
cartesiano.
Supponiamo che tu abbia una tabella che si chiama tblPrezzi, contenente una 
colonna Prezzo.
Crea una prima query come la seguente:
    SELECT Prezzo FROM tblPrezzi WHERE (Prezzo<=50) ORDER BY Prezzo
e la salvi qsubCrescente
Poi ti crei una seconda query come la seguente:
    SELECT tblPrezzi.Prezzo FROM tblPrezzi WHERE (Prezzo Between 50 And 100) 
ORDER BY Prezzo DESC
e la salvi con nome qsubDescrescente.
Infine, ti crei la seguente query che sfrutta le caratteristiche del 
prodotto cartesiano:
    SELECT qsubCrescente.Prezzo AS PrezzoCrescente,
           qsubDescrescente.Prezzo AS PrezzoDecrescente,
           qsubCrescente.Prezzo + qsubDescrescente.Prezzo AS Somma
    FROM qryCrescente, qryDescrescente
    WHERE ([qryCrescente].[Prezzo]+[qryDescrescente].[Prezzo]=100)
Vedi se fa al caso tuo.
-- 
PBsoft di Gabriele Bertolucci
www.pbsoft.it

 questo algoritmo...
Non chiedi poco... Il tuo caso è un classico trattato dalla ricerca 
operativa, conosciuto anche come "problema dello zaino". A meno che i 
tuoi dati non abbiano qualche particolarità che garantisca il 
raggiungimento *perfetto* del valore 100 euro. Puoi dirci qualcosa di più?

 *perfetto* del valore 100 euro. Puoi dirci qualcosa di più?
E io che credevo di avere risolto con 3 query.....  :-)


 E io che credevo di avere risolto con 3 query.....  :-)
Con tre query hai risolto brillantemente il problema di trovare
DUE addendi la cui somma sia 100.
Il problema di trovare TUTTI gli addendi la cui somma sia 100
deve prenedere in considerazione le 2^n-1 combinazioni di n
elementi Cn,1   Cn,2   Cn,3 ... Cn,n.
Io ho risolto il problema modificando e integrando la formula
di Myrna Larson (MyrnaLarson_Combination_Permutation.xls)
la quale, essendo di tipo ricorsivo, prevede alcune dichiarazioni
STATIC e PUBLIC ed annesse complicazioni.
La qual cosa (la ricorsività) mi è grandemente antipatica
(quasi come gli OCX).
Mi piacerebbe scambiare opinioni con qualcuno si fosse
cimentato al riguardo NON utilizzando ricorsività.
Bruno

 cimentato al riguardo NON utilizzando ricorsività.
Io sarei già contento di un controesempio per le mie query :-)


 cimentato al riguardo NON utilizzando ricorsività.
Beh, io ho affrontato il problema usando l'algotirmo del simulated 
annealing, implementandolo in excel perché fosse accessibile ai più, 
senza fare ricorso alla programmazione.
A casa invece ho le dispense di un corso tenuto qualche anno fa a un 
congresso di ricerca operativa che risolve lo stesso problema con il 
risolutore di excel.

 Io sarei già contento di un controesempio per le mie query :-)
Cosa intendi per controesempio?
Bruno 

 sopra detto.
Devo darti ragione.
Ho letto male il post iniziale di Davide.
Lui cerca una "combinazione" di prezzi, non una coppia.


 risolutore di excel.
Le soluzioni via funzionalità specifiche del linguaggio
non mi interessano: si perde di generalità.
Uso Excel soprattutto come interfaccia I/O della programmazione.
Ciao
Bruno 

 È chiedere troppo?
Ti ho scritto via email. Se rispondi...