Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #4534
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!weretis.net!feeder4.news.weretis.net!news.cgarbs.de!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <SRS0=w8ju=XZ=ieee.org=davea@srs.perfora.net> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.014 |
| X-Spam-Evidence | '*H*': 0.97; '*S*': 0.00; 'linear': 0.07; 'python': 0.07; ':-)': 0.07; '(given': 0.09; 'derived': 0.09; 'function:': 0.09; 'precision': 0.09; 'pm,': 0.11; 'subject:error': 0.12; 'syntax': 0.12; 'def': 0.13; 'am,': 0.14; 'wrote:': 0.14; 'recursive': 0.16; 'trivially': 0.16; 'subject:was': 0.16; 'tue,': 0.20; 'cc:no real name:2**0': 0.20; 'cc:2**0': 0.20; '(or': 0.22; 'header:In-Reply-To:1': 0.22; 'cc:addr:python-list': 0.22; 'trying': 0.23; 'version': 0.25; 'pointed': 0.25; "i'm": 0.26; 'chris': 0.27; 'nobody': 0.29; 'cc:addr:python.org': 0.31; 'finite': 0.31; 'anyone': 0.31; 'done': 0.32; 'someone': 0.33; 'generally': 0.33; 'received:192.168.1': 0.34; 'received:192': 0.34; 'follows:': 0.35; 'problem,': 0.35; 'question': 0.35; 'header:User-Agent:1': 0.35; 'accurate': 0.35; 'surprised': 0.35; 'usually': 0.36; 'getting': 0.36; 'else': 0.37; 'received:192.168': 0.37; 'case': 0.37; '(by': 0.38; 'but': 0.38; 'used': 0.38; 'subject: (': 0.39; 'solution': 0.40; 'would': 0.40; "it's": 0.40; 'hand': 0.61; '2011': 0.62; 'traditional': 0.65; 'believe': 0.66; 'easily,': 0.68; 'received:perfora.net': 0.68; 'arrive': 0.69; 'reply-to:no real name:2**0': 0.72; 'header:Reply- To:1': 0.72; '02:59': 0.84; 'algebra': 0.84; 'floats.': 0.84; 'hand.': 0.84; 'received:74.208.4.194': 0.84 |
| Date | Tue, 03 May 2011 06:32:06 -0400 |
| From | Dave Angel <davea@ieee.org> |
| User-Agent | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 |
| MIME-Version | 1.0 |
| To | rusi <rustompmody@gmail.com> |
| Subject | Re: Recursion or iteration (was Fibonacci series recursion error) |
| References | <a78a0ffd-03cc-4540-addb-b8e206d165d5@n2g2000prj.googlegroups.com> <BANLkTimfNQhdE1ZJwP_HN64WwERtUOtBvw@mail.gmail.com> <mailman.1011.1304141265.9059.python-list@python.org> <vcNup.5316$Du7.1273@newsfe04.iad> <ipgl8i$nbm$1@r03.glglgl.eu> <0HFvp.18698$vT3.2042@newsfe06.iad> <b025622c-68da-40fe-959e-3714f221e9c8@k3g2000prl.googlegroups.com> <BANLkTinE67r+DMV2hByJhPA=J6K9k09rmg@mail.gmail.com> <BANLkTinZej9FHis4ymtZScSuiUw_8V_86A@mail.gmail.com> <mailman.1095.1304400645.9059.python-list@python.org> <6828b506-1e18-4bfa-85c0-caa830daf98a@j13g2000pro.googlegroups.com> |
| In-Reply-To | <6828b506-1e18-4bfa-85c0-caa830daf98a@j13g2000pro.googlegroups.com> |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Provags-ID | V02:K0:qfLTs+mh97+CoYVtBeBxu97gGix3UB+u9XKwZQfOcmk WNSDif3Xe4y+e6zkzsRICzHABT2VLKhxuwA7kS/5fsTXDtzvVy 3zcn6ekWMUzHz+KEfFJ331+nF4ldrKn3Zhr8N3yITaCvx81Fd6 jdt0dMSKgN3zIGr0PSqlEhjx7hZMIIeB/cCO+GLAHwaG1Ws9CJ SthweVSIPjXu4We4RCmew== |
| Cc | python-list@python.org |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.12 |
| Precedence | list |
| Reply-To | davea@ieee.org |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1101.1304418763.9059.python-list@python.org> (permalink) |
| Lines | 51 |
| NNTP-Posting-Host | 82.94.164.166 |
| X-Trace | 1304418763 news.xs4all.nl 32470 [::ffff:82.94.164.166]:40998 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.python:4534 |
Show key headers only | View raw
On 01/-10/-28163 02:59 PM, rusi wrote: > On May 3, 10:29 am, Chris Angelico<ros...@gmail.com> wrote: >> On Tue, May 3, 2011 at 3:27 PM, Dan Stromberg<drsali...@gmail.com> wrote: >> Doh. > >> Usually when someone gives a recursive solution to this problem, it's >> O(logn), but not this time. > >> Here's a logn one: > > :-) Ok so you beat me to it :D > > I was trying to arrive at an answer to the question (by M Harris) > about why anyone would do something like fib recursively. I used power > since that illustrates the case more easily, viz: > A trivial power -- recursive or iterative -- is linear time -- O(n) > A more clever power can be O(log(n)) > This more clever power can be trivially derived from the recursive one > as follows: > > The recursive O(n) function: > def powR(x,n): return 1 if (n=) else (x * powR(x, n-1)) > > is just python syntax for the school algebra (or Haskell) equations: > > x^0 = > x^(n+1) = * x^n > > Adding one more equation: > x^(2*n) =x^2)^n = (x*x)^n > Re-python-ifying we get: > > > def pow(x,n): > return 1 if (n=) else pow(x*x, n/2) if even(n) else x*pow(x,n-1) > > def even(n): return n % 2 =0 > > Can this be done iteratively? Of course but its not so trivial. > > [If you believe it is, then try writing a log(n) fib iteratively :D ] > What I'm surprised at is that nobody has pointed out that the logn version is also generally more accurate, given traditional floats. Usually getting the answer accurate (given the constraints of finite precision intermediates) is more important than performance, but in this case they go hand in hand. DaveA
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Fibonacci series recursion error lalit <opposite800@gmail.com> - 2011-04-29 20:22 -0700
Re: Fibonacci series recursion error Gary Herron <gherron@islandtraining.com> - 2011-04-29 20:41 -0700
Re: Fibonacci series recursion error Jason Friedman <jason@powerpull.net> - 2011-04-30 03:57 +0000
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-04-29 23:45 -0500
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-04-29 23:51 -0500
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-04-30 00:31 -0500
Re: Fibonacci series recursion error Peter Otten <__peter__@web.de> - 2011-04-30 08:14 +0200
Re: Fibonacci series recursion error rusi <rustompmody@gmail.com> - 2011-05-02 00:08 -0700
Re: Fibonacci series recursion error Hans Georg Schaathun <hg@schaathun.net> - 2011-04-30 06:50 +0100
Re: Fibonacci series recursion error Paul Rudin <paul.nospam@rudin.co.uk> - 2011-04-30 06:43 +0100
Re: Fibonacci series recursion error Ian Kelly <ian.g.kelly@gmail.com> - 2011-04-29 23:27 -0600
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-04-30 00:35 -0500
Re: Fibonacci series recursion error Peter Otten <__peter__@web.de> - 2011-04-30 08:32 +0200
Re: Fibonacci series recursion error Chris Angelico <rosuav@gmail.com> - 2011-04-30 16:37 +1000
Re: Fibonacci series recursion error Thomas Rachel <nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915@spamschutz.glglgl.de> - 2011-04-30 11:37 +0200
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-05-02 16:50 -0500
Re: Fibonacci series recursion error Chris Angelico <rosuav@gmail.com> - 2011-05-03 08:17 +1000
Re: Fibonacci series recursion error harrismh777 <harrismh777@charter.net> - 2011-05-03 12:10 -0500
Re: Fibonacci series recursion error Chris Angelico <rosuav@gmail.com> - 2011-05-04 07:41 +1000
Re: Fibonacci series recursion error Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-03 16:31 -0600
Re: Fibonacci series recursion error Chris Angelico <rosuav@gmail.com> - 2011-05-04 09:09 +1000
Re: Fibonacci series recursion error Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-02 16:22 -0600
Re: Fibonacci series recursion error Chris Angelico <rosuav@gmail.com> - 2011-05-03 08:42 +1000
Recursion or iteration (was Fibonacci series recursion error) rusi <rustompmody@gmail.com> - 2011-05-02 18:48 -0700
Re: Recursion or iteration (was Fibonacci series recursion error) Chris Angelico <rosuav@gmail.com> - 2011-05-03 12:13 +1000
Re: Recursion or iteration (was Fibonacci series recursion error) Chris Angelico <rosuav@gmail.com> - 2011-05-03 15:29 +1000
Re: Recursion or iteration (was Fibonacci series recursion error) rusi <rustompmody@gmail.com> - 2011-05-03 00:52 -0700
Re: Recursion or iteration (was Fibonacci series recursion error) Dave Angel <davea@ieee.org> - 2011-05-03 06:32 -0400
Re: Recursion or iteration (was Fibonacci series recursion error) rusi <rustompmody@gmail.com> - 2011-05-03 03:51 -0700
Re: Recursion or iteration (was Fibonacci series recursion error) Chris Angelico <rosuav@gmail.com> - 2011-05-03 21:04 +1000
Re: Recursion or iteration (was Fibonacci series recursion error) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-05-03 12:49 +0000
Re: Recursion or iteration (was Fibonacci series recursion error) Chris Angelico <rosuav@gmail.com> - 2011-05-03 23:02 +1000
Re: Recursion or iteration (was Fibonacci series recursion error) Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-02 23:46 -0600
csiph-web