» »

[Python] Hornerjev algoritem

[Python] Hornerjev algoritem

n3zn4n ::

Lep pozdrav,

za šolski projekt morem izdelati Hornerjev algoritem v Pythonu. Ker se mi niti ne sanja, kako bi to dosegel za n-to stopnjo polinoma, se obračam na vas: Kako naj izdelam ta algoritem ?

Lep pozdrav,

ikov34

krneki0001 ::

def horner(coeffs, x):
	return reduce(lambda acc, c: acc * x + c, reversed(coeffs), 0)


Pokličeš:
horner( (-19, 7, -4, 6), 3)

In ti mora vrniti 128.

https://hkn.eecs.berkeley.edu/~dyoo/pyt...
http://eli.thegreenplace.net/2010/03/30...
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster

Zgodovina sprememb…

Roadkill ::

In potem ga profesor vpraša kako delujejo lambda metode, mulc ne zna in dobi šus, ker je nalogo od nekje prekopiral. :)
Ü

Yacked2 ::

Za kaj pa rabiš hornerjev algoritem ? Za računanje ostanka polinoma
p(x) = k(x) * q(x) + o(x) ? Se pravi poznaš p(x) ter q(x) ?
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Yacked2 ::

Evo v javi, saj logika je ista. Najprej kot array vneseš polinom p, nato definiraš še x število s katerim deliš. Nato potrebuješ 2 arraya, rešlivo bi bilo tudi z enim, a si boš tako bolj predstavljal, ker je bolj podobno temu kar ste delali v zvesku. Prvi korak ti je verjetno jasen. Prvi koeficient polinoma prepišeš v koeficient. Nato se z for zanko sprehodiš po celem polinomu od 2 koeficienta (index 1). Ter najprej izračunaš prvo vrstico (x* rezultat prejšnega okenčka) to ponavljaš do konca. Nato imaš na zadnjem mestu polinoma k ostanek, pred njim pa je koeficient, ki ima eno stopnjo manjšo kot sam polinom. Spodnji program rešuje samo v realnem brez neznank.

int[] p = new int[] {2,-3,-4,5};
int x = 6;
		
int[] plus = new int[p.length];
int[] k = new int[p.length];
		
		plus[0] = 0;
		k[0] = p[0];
		
		for (int i=1; i < p.length;i++)
		{
			plus[i] = x*k[i-1];
			k[i] = p[i] + plus[i];
		}
		
		for(int a: k)
		{
			System.out.println(a);
		}
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matematika[polinomi]

Oddelek: Šola
322221 (2001) lebdim
»

[C#] Reševanje domačih nalog

Oddelek: Programiranje
173273 (2777) krastača

[C#]Length

Oddelek: Programiranje
6765 (661) Ziga Dolhar

[C#]polje znakov

Oddelek: Programiranje
112371 (2199) Ziga Dolhar
»

polinomi

Oddelek: Šola
122556 (2397) Wox

Več podobnih tem