|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Member
Iscritto dal: Feb 2007
Messaggi: 42
|
[C] Algoritmo Di Horner
2 domande..
Allora il programma deve prendere in input grado massimo del polinomio,valore max,minimo e scarto e stampare il ciclo in questo modo:ES Grado Max: 2 Coeff di x^2:2 Coeff di x^1:3 Coeff di x^0:2 Il polinomio ha questa forma: 2x^2+3x^1+2x^0 Prima domanda: E'Possibile togliere quell' x^0 che è inutile e lasciare +2? Poi il programma prosegue...ES: Inserire Valore Iniziale:3 Inserire Valore Finale: 10 x Scarto: 4 allora stamperà:========> 3(val iniziale) 7(+ 4 perchè è lo scarto) 10(arrivo) Ora devo stampare la colonna della y i cui valori saranno i risultati che si otterranno sostituendo le x al polinomio ES:iniziamo con 3: 2x^2+3x^1+2x^0=2*9+3*3+2=29 2° Domanda: Come faccio a sostituire questi valori alla x??? Vi posto il source code Quote:
|
|
![]() |
![]() |
![]() |
#2 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Quote:
Codice:
float f=0; int j; for (i=min; i<=max; i=i+inc){ for(j=0;j<=grado;j++) f=f+n[j]*pow(i,grado-j); //stampi il ris f=0; } |
||
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Feb 2007
Messaggi: 42
|
Ho applicato quello che mi hai detto
Quote:
Polinomio: 2x^2+1x^1+1 ES con 1: 2*1^2+1*1^1+1=4 con 6: 2*6^2+1*6^1+1=79 Dovrebbe stampare solo 4 e 79 ma invece 6 valori di cui 2 corretti..ci siamo quasi ![]() 1 =====> 2.0 6 =====> 3.0 e altri valori 4.0 72.00 78.00 79.00(ovviamente in verticale) Ultima modifica di dengel_1 : 27-04-2007 alle 12:58. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Posto che non penso di aver capito bene il tuo problema, il codice mostrato non mi sembra vada bene se l'esercizio consiste nell'applicare lo schema di horner.
Lo schema di horner si può riassumere all'incirca così: dato un polinomio tipo a1*x^3 + a2*x^2 + a3*x + a4 (questo è di grado 3 per fare un esempio) invece di valutarlo nel modo in cui lo scrivi, cioè elevando a potenza, sommando e moltiplicando, lo valuti cosi: ((((a1*x+a2)*x+a3)*x+a4 il programma che ne risulta per valure il polinomio per una certa x è (pseudo-all'incirca): Codice:
result = a1; for i = a2 to aN result = result * x + ai end print result
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Comunque come ti avevo detto non ho neanche guardato in cosa consiste l'algoritmo di horner, ho semplicemente calcolato come si farebbe normalmente. Ora rifallo come ti ha detto shinya. |
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Feb 2007
Messaggi: 42
|
No il tuo codice è giusto..c'erano delle parentesi in +
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:49.