PDA

View Full Version : [C / C++] progetto per esame (semplice ma per me incomprensibile) aiutooo!!!


PaSteam
30-08-2007, 17:38
salve
mi servirebbe una mano nell' interpretare questo tema di progetto
per il corso di algoritmi e strutture dati , se qualcuno capisce cosa dice questo testo e mi potesse spiegare con un esempio (in italiano) senza codice o pseudocodice gli sarei molto grato.
quindi ovviamente questo quesito è per tutti non solo per chi conosce il linguaggio
c o c++
grazie in anticipo

testo del progetto

Scrivere un programma ANSI C che acquisisce i coeficienti di un polinomio e calcola il valore del polinomio in un certo punto (stabilito dall'utente) effettuando un numero di addizioni e di moltiplicazioni che è lineare rispetto al grado del polinomio.

k0nt3
30-08-2007, 18:21
beh in ingresso prendi i coefficienti del polinomio e il punto in cui calcolarlo. come risultato devi restituire il valore del polinomio in quel punto e l'unico vincolo è che il numero di operazioni che svolgi durante il calcolo sia proporzionale al grado del polinomio
ad esempio se per calcolare il valore di un polinomio di grado 1 ci impieghi 3 operazioni e per un polinomio di grado 2 ce ne impieghi 6.. allora per uno di grado 3 ce ne devono volere 9! si capisce meglio così?

cionci
30-08-2007, 18:24
Ora non mi ricordo come si chiama la formula ma se te hai un polinomio...

2*X^4 + 2*X^3 - 3*X^2 + X + 2

lo puoi scrivere come:

2 + X * (2*X^3 + 2*X^2 + 3*X + 1) = 2 + X * (1 + X * (2*X^2 + 2*X + 3)) =
= 2 + X * (1 + X * (3 + X * (2 + 2 * X)))

In questo modo fai una somma ed una moltiplicazione per ogni grado del polinomio.

E' una formula che usa nel calcolo numerico per rendere più breve il calcolo dei polinomi in cui l'incognita è una matrice.
Se sostituisci ai numeri i coefficienti in ingresso (a[0], a[1], a[2], a[3], a[4]) ci viene benissimo un algoritmo ricorsivo ;)

PaSteam
30-08-2007, 18:36
Ora non mi ricordo come si chiama la formula ma se te hai un polinomio...

2*X^4 + 2*X^3 - 3*X^2 + X + 2

lo puoi scrivere come:

2 + X * (2*X^3 + 2*X^2 + 3*X + 1) = 2 + X * (1 + X * (2*X^2 + 2*X + 3)) =
= 2 + X * (1 + X * (3 + X * (2 + 2 * X)))



grazie questo è un aiuto prezioso

qualcuno conosce il nome della formula suggerita in questo post?

e il nome o metodo della matrice suggerita?