Olkoon meillä tuntematon funktio f, josta tiedetään vain että se on polynomi, jonka kaikki kertoimet ovat luonnollisia lukuja.
Siis f(x) = a0 a1*x a2*x^2 ... an*x^n.
Miten funktio f saadaan selvitettyä laskemalla sen arvo kahdessa pisteessä?
Siis f(x) = a0 a1*x a2*x^2 ... an*x^n.
Miten funktio f saadaan selvitettyä laskemalla sen arvo kahdessa pisteessä?
Vastaukset 14
Vanhimmat
Jos tiedetään, että polynomin kertoimet saadaan selville polynomin arvoista kahdessa pisteessä, niin silloin polynomi on muotoa a0 a1x.
Tuo on se intuitiivinen vastaus, mutta olet väärässä.
Vinkki: Toisen pisteen valinta voi riippua siitä, mikä arvo ensimmäisenä valitussa pisteessä saatiin.
Astetta n olevan polynomin määräämiseen tarvitaan aina n 1 pistettä, joten kaksi pistettä voi määrätä vain suoran a0 a1*x.
Yleisessä tapauksessa kyllä, mutta tehtävän oletukset rajaavat mahdollisten polynomien joukkoa niin, että kahdella pisteellä voidaan määrätä yksikäsitteisesti minkä tahansa asteen polynomi.
Mieti vaikka esimerkkitapausta, jossa f(1)=1 ja f(2)=4. Nuo ehdot toteuttaa täsmälleen yksi polynomi, jonka kertoimet ovat luonnollisia lukuja.
Mieti vaikkapa esimerkkitapausta f(-1) = f(1) = 1. Nuo ehdot toteuttavat polynomit f = 1, x^2, x^4...
Ei tietenkään mitkä tahansa kaksi pistettä kelpaa kaikille polynomeille, mutta jokaiselle polynomille on olemassa kaksi pistettä siten, että mikään toimen polynomi ei saa samoja arvoja molemmissa pisteissä.
Keksin ratkaisun, mutta en vielä spoilaa muilta.
Kannattaa huomata, ettei matematiikassa yleensä anneta tarpeettomia oletuksia, joten alkuun pääsyä voi helpottaa kun miettii miksi on olennaista, että kertoimet ovat juuri luonnollisia lukuja.
Jos polynomin kertoimet saisivat olla myös negatiivisia tai jos niiden ei tarvitsisi olla kokonaislukuja, niin tätä ei voisi ratkaista.
Minäkin keksin. Hyvä tehtävä!
.
.
.
SPOILER!!!
.
.
.
Vinkki: https://www.desmos.com/calculator/ep43vsyqi9 Älkää katsoko tätä jos haluatte miettiä.
Jos tiedetään, että polynomin kertoimet < 10^n, lasketaan f(10^n), ja tuloksesta voidaan lukea polynomin kertoimet.
Siis lasketaan ensin f(1) jolloin saadaan kertoimien summa S. Sitten valitaan n niin että 10^n > S. Sitten lasketaan f(10^n) jolloin polynomien kertoimet helposti nähdään.
Juuri näin!
P(x) = 1 20 x^2
P(1) = 21 joten n = 2
P(100) = 200001
Q(x) = 1 2000 x
Q(1) = 2001 joten n = 4
Q(10000) = 20000001
???
Ei sitä n:ää päätellä ensimmäisestä pisteestä, vaan toisesta. Ensimmäinen kertoo vain, mitä toiseksi pisteeksi pitää valita.
P(x) = 1 2000x.
P(1) = 2001, joten toiseksi pisteeksi valitaan 10000.
P(10000) = 20 000 001, jolloin tiedetään, että vakiotermi a0 = 1, x:n kerroin a1 = 2000, ja sitä suurempien x:n potenssien kertoimet ovat nollia.
P(x) = 1 20*x^2
P(1) = 21, joten valitaan toiseksi pisteeksi 100.
P(100) = 200 001, joten tiedetään, että vakiotermi a0=1, x:n kerroin a1=0, x^2:n kerroin a2=20, ja sitä suurempien x:n potenssien kertoimet ovat nollia.
Kun toiseksi pisteeksi valitaan tarpeeksi iso 10^k, polynomin kertoimet voidaan lukea kutakin potenssia vastaavasta kohdasta polynomin arvoa tuossa pisteessä.
Kun n = 2, se kertoo, että tuon P(100) numerot pitää ryhmitellä lopusta alkaen kahden välein kertoimien määrittämiseksi, eli 20 00 01, eri potenssien kertoimet ovat siis suurimmasta alkaen 20, 0 ja 1. Eli yleisesti ryhmittely tehdään n numeron sarjoihin.
Fiksumpi olisi tuon itsekin huomannut.