Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

valori vicini

0 views
Skip to first unread message

Slaine Mc Roth

unread,
Dec 13, 2009, 1:19:34 PM12/13/09
to
Salve a tutti.
Come faccio a cercare in un array il valore che più si avvicina ad un valore dato?
Mi spiego: ho un array con vari valori double (1.15, 0.32, 2.54, 3.5,1.0 ecc.); dato un valore che passo alla funzione questa mi deve trovare l'indice dell'array contenente il valore che più si avvicina (valore passato alla funzione = 0.35 -> indice restituito = 1).
Spero di essermi spiegato bene

--
Due volte sciocco e' colui che svelando un segreto a un altro, gli chiede caldamente di non svelarlo a nessuno. (Miguel de Cervantes)

Jack

unread,
Dec 14, 2009, 2:36:14 AM12/14/09
to
On 13 Dic, 19:19, Slaine Mc Roth <gildegameshNOS...@inwind.it> wrote:
> Salve a tutti.
> Come faccio a cercare in un array il valore che più si avvicina ad un valore dato?
> Mi spiego: ho un array con vari valori double (1.15, 0.32, 2.54, 3.5,1.0 ecc.); dato un valore che passo alla funzione questa mi deve trovare l'indice dell'array contenente il valore che più si avvicina (valore passato alla funzione = 0.35 -> indice restituito = 1).

a mano come fai? una volta che lo sai fare a mano (su carta) diventa
facile scrivere il codice.

Ciao Jack

OcchioDiDrago

unread,
Dec 14, 2009, 3:54:59 AM12/14/09
to
Slaine Mc Roth (13/12/2009):
> Salve a tutti.
> Come faccio a cercare in un array il valore che piᅵ si avvicina ad un valore

> dato? Mi spiego: ho un array con vari valori double (1.15, 0.32, 2.54,
> 3.5,1.0 ecc.); dato un valore che passo alla funzione questa mi deve trovare
> l'indice dell'array contenente il valore che piᅵ si avvicina (valore passato

> alla funzione = 0.35 -> indice restituito = 1). Spero di essermi spiegato
> bene

Cosᅵ al volo mi viene da pensare: per ogni elemento dell'array calcoli
il valore assoluto della differenza con il valore da cercare, l'indice
del risultato piᅵ basso ᅵ il valore ti interessa. Secondo il tuo
esempio:

cerca = 0.35
array = {1.15, 0.32, 2.54, 3.5, 1.0}
abs(diff) = {0.8, 0.03, 2.19, 3.15, 0.65}

il minore di abs(diff) ᅵ l'elemento di indice 1, quindi prendi lo
stesso elemento dell'array.

A te l'implementazione dell'algoritmo. Piccola sfida: puoi
implementarlo senza allocare un secondo array, vediamo se riesci ;)

Ciao!

--
Scientology: se la conosci la eviti, se la conosci non ti uccide...
http://xenu.com-it.net - http://xenu.freewinds.cx - http://www.xenu.net
(per rispondere personalmente leva IlDitoDalCulo)
---> 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 <---


Slaine Mc Roth

unread,
Dec 19, 2009, 2:48:37 AM12/19/09
to
Il Mon, 14 Dec 2009 09:54:59 +0100 in un momento di follia
OcchioDiDrago <ech3l0n.il...@email.it> disse:

> Così al volo mi viene da pensare: per ogni elemento dell'array calcoli


> il valore assoluto della differenza con il valore da cercare, l'indice

> del risultato più basso è il valore ti interessa.

Hai ragione. Mi costruisco un array con le differenze :))

> A te l'implementazione dell'algoritmo. Piccola sfida: puoi
> implementarlo senza allocare un secondo array, vediamo se riesci ;)

Aarghh! Devo pensarci un po.
Grazie per l'aiuto. Ciao.

--
Non si puo' avere una faccia con se stessi e una con gli altri senza
confondersi alla fine su quale sia quella vera. (Nathaniel Hawtorn)

Slaine Mc Roth

unread,
Dec 19, 2009, 2:51:27 AM12/19/09
to
Il Sun, 13 Dec 2009 23:36:14 -0800 (PST) in un momento di follia Jack
<jack...@gmail.com> disse:

> a mano come fai? una volta che lo sai fare a mano (su carta) diventa
> facile scrivere il codice.

Non avendo alle spalle un background scolastico (sono un hobbista autodidatta) volevo evitare di riscoprire l'acqua calda. Magari c'è un algoritmo da implementare che fa proprio quello che cerco. Mi bastava il nome da dare in pasto a google per ricavare informazioni.
Grazie. ciao.

--
"Nella lotta tra te e il mondo, stai dalla parte del mondo." (F.Zappa)

0 new messages