Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:08 čet, 13. 1. 2011 Naslov: |
|
|
Za pocetak, zanemari produkt (jer je to produkt polinoma, pa prvo njih rijesi). Treba ti samo
[latex]$\begin{align*}
p_i(x) &:= \sum_{j=1}^n (a_{i-1} - b_{j-1}) x^{i+j} = \sum_{j=0}^{n-1} (a_{i-1} - b_j) x^{i+j+1} \\
&= x^{i+1} \sum_{j=0}^{n-1} (a_{i-1} - b_j) x^j.
\end{align*}[/latex]
Jednom kad napises funkciju
[tt]double p(double a[], double b[], int n, int i, double x)[/tt]
koja Hornerovim algoritmom racuna [latex]p_i(x)[/latex], ostaje ti samo jednostavno mnozenje:
[code:1]double res = 1;
for (i = 1; i <= n; ++i)
res *= p(a, b, n, i, x);[/code:1]
Opaska: nisam gledao sluzbeno rjesenje, pa se mozda ovaj hint malo razlikuje od toga.
Za pocetak, zanemari produkt (jer je to produkt polinoma, pa prvo njih rijesi). Treba ti samo
Jednom kad napises funkciju
double p(double a[], double b[], int n, int i, double x)
koja Hornerovim algoritmom racuna , ostaje ti samo jednostavno mnozenje:
Kod: | double res = 1;
for (i = 1; i <= n; ++i)
res *= p(a, b, n, i, x); |
Opaska: nisam gledao sluzbeno rjesenje, pa se mozda ovaj hint malo razlikuje od toga.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
lalala5 Forumaš(ica)
Pridružen/a: 06. 10. 2010. (17:54:28) Postovi: (3C)16
|
Postano: 17:27 pet, 14. 1. 2011 Naslov: |
|
|
imam pitanjce u vezi hornera
znam rastaviti polinom kako pise u skripti, ali mi nije jasan onaj dio s umnoskom jer nigdje nije rijesen s postupkom
to je zadatak 11.3.7. na str 134 segine skripte
ovo je moj program, ali ne ispisuje u cemu je problem
jel mi netko moze razjasniti?
[code:1]#include <stdio.h>
int main(){
unsigned int n;
int i, j;
double pomocna=0, a[100000], p=0, p1=1, x;
scanf("%u", &n);
for(i=0;i<n*n+1;i++){
scanf("%lf", &pomocna);
a[i]=pomocna;
}
x=a[n*n];
for(i=0;i<=n-1;i++){
for(j=n-1;j>=0;j--){
p=p*x+a[j+n*i];
}
p1=p1*p;
}
printf("%g", p1);
return 0;
}[/code:1]
nasla gresku :lol:
zaboravila sam sumu postaviti na nulu uvijek kad se promijeni i
sad stina 8)
imam pitanjce u vezi hornera
znam rastaviti polinom kako pise u skripti, ali mi nije jasan onaj dio s umnoskom jer nigdje nije rijesen s postupkom
to je zadatak 11.3.7. na str 134 segine skripte
ovo je moj program, ali ne ispisuje u cemu je problem
jel mi netko moze razjasniti?
Kod: | #include <stdio.h>
int main(){
unsigned int n;
int i, j;
double pomocna=0, a[100000], p=0, p1=1, x;
scanf("%u", &n);
for(i=0;i<n*n+1;i++){
scanf("%lf", &pomocna);
a[i]=pomocna;
}
x=a[n*n];
for(i=0;i<=n-1;i++){
for(j=n-1;j>=0;j--){
p=p*x+a[j+n*i];
}
p1=p1*p;
}
printf("%g", p1);
return 0;
} |
nasla gresku
zaboravila sam sumu postaviti na nulu uvijek kad se promijeni i
sad stina
|
|
[Vrh] |
|
Gea_ Forumaš(ica)
Pridružen/a: 04. 12. 2010. (00:31:15) Postovi: (12)16
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 12:20 sub, 15. 1. 2011 Naslov: |
|
|
Vanjska suma se takodjer moze rijesiti Hornerom, jer, u osnovi, imas:
[latex]p(y) := \sum_{j=1}^m a_j(y) y^j \\
a_j(y) := \sum_{k=0}^{m-1} c_{k} d_{j-1} y^k[/latex]
Dakle, jedan Horner za [latex]a_j(y)[/latex], a drugi za [latex]p(y)[/latex], pri cemu je prvi "zapakiran" unutar drugog.
Vanjska suma se takodjer moze rijesiti Hornerom, jer, u osnovi, imas:
Dakle, jedan Horner za , a drugi za , pri cemu je prvi "zapakiran" unutar drugog.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:36 sub, 15. 1. 2011 Naslov: |
|
|
Racunanje potencije od [tt]y[/tt] nije. Em računa [latex]y^{2^j}[/latex], umjesto [latex]y^j[/latex], em se taj [tt]y[/tt] nigdje ne resetira na staru vrijednost.
Osim toga, je l' tocno ili nije, ovisi o tome sto se u zadatku trazi. Ako se trazi Horner, onda vjerojatno ovo ne bi proslo.
Racunanje potencije od y nije. Em računa , umjesto , em se taj y nigdje ne resetira na staru vrijednost.
Osim toga, je l' tocno ili nije, ovisi o tome sto se u zadatku trazi. Ako se trazi Horner, onda vjerojatno ovo ne bi proslo.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 7:19 ned, 16. 1. 2011 Naslov: |
|
|
[quote="A-tom"]Da trazi se Horner. [...]
Nije mi jasno zasto se prva suma nemre rjesiti pomocu prvog for-a. Mozete li mi objasniti?[/quote]
Moze se, ali to onda nije Horner na mjestu na kojem se Horner moze prirodno upotrijebiti.
[quote="lost_soul"]zanima me kod tog 3. zadatka iz prošlogodišnjeg kolokvija, zašto se u rješenjima kod definicije funckije koristi const double? :?
npr:
[code:1]double h(const double *const a, const double *const b, const int n, const double x) {[/code:1][/quote]
Zbog korektnosti (jer se te varijable ne mijenjaju u funkciji), no to nije razina preciznosti koja bi se trazila u kolokviju. Kolokvij uredno smijete napisati bez ijednog [tt]const[/tt], osim ako negdje bas bude naglaseno da treba osigurati da treba osigurati da se neki argument funkcije ne mijenja u tijelu funkcije.
A-tom (napisa): | Da trazi se Horner. [...]
Nije mi jasno zasto se prva suma nemre rjesiti pomocu prvog for-a. Mozete li mi objasniti? |
Moze se, ali to onda nije Horner na mjestu na kojem se Horner moze prirodno upotrijebiti.
lost_soul (napisa): | zanima me kod tog 3. zadatka iz prošlogodišnjeg kolokvija, zašto se u rješenjima kod definicije funckije koristi const double?
npr:
Kod: | double h(const double *const a, const double *const b, const int n, const double x) { |
|
Zbog korektnosti (jer se te varijable ne mijenjaju u funkciji), no to nije razina preciznosti koja bi se trazila u kolokviju. Kolokvij uredno smijete napisati bez ijednog const, osim ako negdje bas bude naglaseno da treba osigurati da treba osigurati da se neki argument funkcije ne mijenja u tijelu funkcije.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
sstudentica Forumaš(ica)
Pridružen/a: 30. 11. 2010. (13:18:02) Postovi: (3A)16
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
matijaB Forumaš(ica)
Pridružen/a: 19. 08. 2010. (09:11:43) Postovi: (4D)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:00 pon, 17. 1. 2011 Naslov: |
|
|
Naravno da ne. :shock: Gdje nestade asocijativnost?!
[latex](a_{i-1} - b_j)x^j \neq a_{i-1} - b_j x^j[/latex]
Cemu uopce tako rastavljati? [latex]\sum_{j=0}^{n-1} (a_{i-1} - b_j)x^j[/latex] je polinom u [latex]x[/latex], jedino su koeficijenti nekakve sume dva broja, sto je valjda jasno da su opet brojevi. Dakle, Horner vulgaris, bez neke duboke mudrosti.
Naravno da ne. Gdje nestade asocijativnost?!
Cemu uopce tako rastavljati? je polinom u , jedino su koeficijenti nekakve sume dva broja, sto je valjda jasno da su opet brojevi. Dakle, Horner vulgaris, bez neke duboke mudrosti.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
Postano: 17:00 pon, 17. 1. 2011 Naslov: |
|
|
Evo imam jedno pitanje?
Jel bi se ovo priznalo kao horner? Dakle proslogodisnji kolokvij...
[code:1]double h(double a[], double b[], int n, double x){
double p=0,z,v,res;
int j,i;
p=0;
z=1;
v=1;
res = 1;
for (i=n; i>=1; i--){
for(j=n-1; j>=0; j--){
p=p*x+(a[i-1]+b[j]);
}
z=z*x;
v=v*p*x*z;
p=0;
}
return v;
}[/code:1]
Evo imam jedno pitanje?
Jel bi se ovo priznalo kao horner? Dakle proslogodisnji kolokvij...
Kod: | double h(double a[], double b[], int n, double x){
double p=0,z,v,res;
int j,i;
p=0;
z=1;
v=1;
res = 1;
for (i=n; i>=1; i--){
for(j=n-1; j>=0; j--){
p=p*x+(a[i-1]+b[j]);
}
z=z*x;
v=v*p*x*z;
p=0;
}
return v;
} |
|
|
[Vrh] |
|
Joker Forumaš(ica)
Pridružen/a: 19. 09. 2010. (10:19:16) Postovi: (8C)16
Spol:
|
|
[Vrh] |
|
frutabella Forumaš(ica)
Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
Postano: 18:27 pon, 17. 1. 2011 Naslov: |
|
|
double s1(const double a1, const double *const b, const int n, const double x1) {
int j;
double sum = 0.0;
for (j = n; j >= 1; --j)
sum = sum * x1 + (a1 + b[j - 1]);
return sum;
}
double h1(const double *const a, const double *const b, const int n, const double x) {
int i;
double prod = 1.0, xpot = x * x;
for (i = 1; i <= n; ++i) {
prod *= xpot * s1(a[i - 1], b, n, x);
xpot *= x;
}
return prod;
}
[/code]
moze li mi netko protumaciti sto znaci ovo dole xpot=x*x , malo se gubim (iz sluzbenih rjesenja za taj hornerov zadatak)
double s1(const double a1, const double *const b, const int n, const double x1) {
int j;
double sum = 0.0;
for (j = n; j >= 1; –j)
sum = sum * x1 + (a1 + b[j - 1]);
return sum;
}
double h1(const double *const a, const double *const b, const int n, const double x) {
int i;
double prod = 1.0, xpot = x * x;
for (i = 1; i ⇐ n; ++i) {
prod *= xpot * s1(a[i - 1], b, n, x);
xpot *= x;
}
return prod;
}
[/code]
moze li mi netko protumaciti sto znaci ovo dole xpot=x*x , malo se gubim (iz sluzbenih rjesenja za taj hornerov zadatak)
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
|