+ 1
[Python] Nth root of y
so im trying to write a code to learn with that will return what times itself x times = y or the nth root of y. i know its a logic error because it runs but i doesnt do what i want i think the error is in the last print statement or in how im manipulating the variables to try the next case i have a feeling this method is floored but im not sure how my next attempt will be to use % test case instead of percentage of the answer i want https://code.sololearn.com/cPHAZNLLpsZ0/#py
4 Réponses
+ 4
First of all, powers in python are done with the ** operator instead of ^. This also means you can find nth roots like this: x ** (1/n)
But doing it "by hand" is an interesting challenge. For square roots there is the well known babylonian method: Lets say we want to find √100. First we take a guess `x`, say 5, doesn't really matter. Then you do:
(100/x + x) / 2
and that is your new x. You take the midway point between your guess and the reciprocal so to say.
For higher roots there is Newton's method:
Say we want to find x = ³√100.
then x³ - 100 = 0 with a bit of algebra, which is a polynomial where we want to find the root. The derivative of x³ - 100 is 2x².
Newtons method therefor says:
Take a guess x, say 5, doesn't matter. Do
x - (x³ - 100) / (2x²)
And that is your new x. Do that a couple of times and you get a pretty good estimate for ³√100.
I hope that wasn't too maths-heavy.
+ 3
Schindlabua that makes me feel like I need to take a refresher in mathematics. Lol
Maybe I'm just getting old, been close to 30 yrs since my last math class. Lol
+ 2
+ 1
ChaoticDawg Honestly I just know it's a thing and I look up the details as needed :P My uni maths was like 5 years ago though so it's a bit fresher, ha.