Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobry den riesim nasledovny problem, mam napisat program to je jedno v akom jazyku na eulerov alg. ale pomocou polynomov.
resp. ktory bude realizovat Euklidov algoritmus pre vypocet najvacsiejo spolocneho delitela polynomov r(x) = NSD(p(x),q(x)) v poli realnych cisel.
program eulerovalg;
var x,y:integer;
begin
readln(x,y);
repeat
if x>y then x:= x-y;
if y>x then y:= y-x;
until x=y;
writeln('NSD= ',x);
readln;
end.ja som si napisal program ale len na vypocet pomocou cisel. respektivne odcitavanie.
chcel by som vas teda poprosit o radu ako by mal vyzerat dany algoritmus ?
dakujem.
Offline

Polynom je třeba mít uložen jako pole koeficientů (od konstantního k vyšším mocninám) a v nějaké proměnné si pamatovat jeho stupeň. Aby nám koeficienty nerostly moc rychle, budeme polynomy uchovávat v normovaném tvaru, tedy s koeficientem u nejvyšší mocniny rovným 1. Místo x:=x-y proběhne forcyklus, který odečte koeficienty u odpovídajících si* mocnin, navíc detekuje, jaký je poslední koeficient je nenulový (podle čehož uloží nový stupeň polynomu) a následně druhý forcyklus, který výsledný polynom normuje. Je kolem toho ještě pár technických detailů, ale ty jistě vyřešíš.
---
*odečítáme nejvyšší mocninu od nejvyšší, druhou nejvyšší od druhé nejvyšší ... kdyby byl x=t^3+2 a y=t+1, budou pole x a y obsahovat
x:2,0,0,1
y:1,1,
odečtením dostaneme v x 2,0,-1,0
Offline
Stránky: 1