Formula da una tabella con valori noti?

mfa1
Ciao, vorrei capire come scrivere una formula per determinare alcuni valori una tabella.
Mi spiego. Supponiamo di avere una tabella dove, per ciascuna riga abbiamo
x1..xn = valori che vanno da min a max e mai uguali tra loro
y = numero progressivo
x1x2x3x4y
23411
35212
63124
41246
13456
34671


Come si può scrivere una formula che, dati i valori x(n), restituisca y?
Es. per la tabella sopra: x1=1, x2=3, x3=4, x4=5 ---> y=6

Ovviamente lo stesso metedo dovrà poter essere utilizzato anche per tabelle con diversi valori min/max, (x1...xn), y.

Non so proprio da dove iniziare... :(
Grazie, Ari.

Risposte
@melia
Ciao mfa, benvenuto nel forum. La tua richiesta non mi pare di matematica per la secondaria, mi sembra un problema di informatica. Sposto il messaggio nell'area adatta.

apatriarca
Consideriamo per ora il primo valore. Se \(x_1 = \text{min}\) allora abbiamo che possiamo ignorarlo per il calcolo di \(y\) in quanto il valore sarà uguale a quello ottenuto considerando i rimanenti valori con un nuovo minimo uguale a \(\text{min} + 1\). Se questo valore non è il minore allora puoi contare tutti le combinazione con il valore di \(x_1\) minore di quello corrente e sommare tale valore al risultato ottenuto dal conto ottenuto dai valori seguenti. Supponi ad esempio nel tuo caso \(x_1=3\). Allora hai che il numero di combinazioni con \(x_1 = 1\) è \( \binom{5}{3} \) e per \(x_1 = 2\) è \( \binom{4}{3} \). A questo punto il tuo valore sarà uguale a \( \binom{5}{3} + \binom{4}{3} + T((4, 6), (x_2, x_3, x_4)) \) dove \(T\) è il valore ottenuto dal resto della combinazione (in questo caso sarà ovviamente uguale a 1\).

mfa1
Intanto grazie apatriarca!
Mi scuso per il ritardo nella risposta... non credo però di aver compreso la tua soluzione:
mi puoi fare un esempio pratico es. con la tabella indicata e con x1=1, x2=3, x3=4, x4=5?
Inoltre, come fare quando estendiamo la tabella es. con un valore max=10 anzichè 6?
Più che la soluzione di per sè mi interesserebbe capire il ragionamento ed il metodo da seguire per scrivere tale formula!
Grazie, Ari.

nochipfritz
Ciao mfa....posso provare a darti una dritta che è universale, nel senso che funziona anche senza dei limiti (min, max) ma per qualunque tipo di matrice. Certo non è il massimo dell'efficienza...e non escludo che ci siano metodi più veloci. Dovrei ripassarmi calcolo numerico!!!

Dunque esistono diverse tecniche di interpolazione . Queste tecniche consentono di costruire la funzione interpolante ad una sola variabile indipendente y=f(x) noti alcuni nodi tipo (x1,y1) , (x2, y2)....(xn,yn). Basta fare una ricerca su google e troverai subito qualche metodo (mi viene in mente la più banale...matrice di vandermonde).

Il tuo problema però è che tu ricerchi una funzione con più di 1 varibabile indipendente....quindi si tratta di ragruppare le colonne che poi saranno di input per la funzione interpolante in un unica colonna...cioè praticamente avere una biezione che da x1,x2,...xk (escludendo quindi y che resta come è) ti crei un unico x che rappresenta in modo univoco quella k-pla di dati (cioè una riga di quella colonna). Questa funzione poi, la puoi combinare con il metodo interpolante con una sola variabile indipentende e il gioco è fatto. Come biezione ti suggerisco:

Ti suggerisco questa biiezione
$\tau: \cup_{k\leq 0} \mathbb{N}^k → \mathbb{N}$

$ \tau(x_1, x_2,...,x_k) = 2^{x_1} + 2^{x_1+x_2+1} +....+ 2^{x_1+x_2+....+x_k+1}-1$

Ovviente la $\tau$ riguarda solo numeri naturali, quindi funzionerebbe solo se la matrice è fatta di numeri naturali....bisognerebbe capire se c'è una corrispondenza biunivoca in $R$ capace di compattare i dati ed avere cosi un metodo veramente universale.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.