python之斐波那契数列递归推导在性能方面的反思

时间:2023-03-10 00:34:16
python之斐波那契数列递归推导在性能方面的反思

在各种语言中,谈到递归首当其冲的是斐波那契数列,太典型了,简直就是标杆

一开始本人在学习递归也是如此,因为太符合逻辑了

后台在工作和学习中,不断反思递归真的就好嘛?

首先递归需要从后往前推导,所有数据都要保存一遍~,如果是输入很大数字,如以前的1M内存可能不够把??

我们暂且不谈过去,毕竟是过去,现在即使手机的内存都动辄3G、4G,哪能不够

斐波那契数列典型代码如下:

def fib1(x):
if x == 1:
return 1
elif x == 2:
return 1
elif x > 2:
return fib1(x - 1) + fib1(x - 2)
else:
return 0

如果算100以内还是比较快的,如果算10000明显比较慢

换个思路,如果我们不使用推导,而是正常的向下计算,速度是不是很快?

代码如下:

def fib2(x):
if x == 1:
return 1
elif x == 2:
return 1
elif x > 2:
x1 = 1
x2 = 1
result = 0
for i in range(3,x + 1):
result = x1 + x2
x1,x2 = x2,result
return result
else:
return 0

在pycharm中分别计算俩个的运行速度发现,推导式很慢:

aaarticlea/png;base64,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" alt="" />

上面是执行fib1(30)的结果,下面是执行fib2(30)的结果,当计算35的时候,如下图:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQwAAABpCAYAAADPwh3OAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABH6SURBVHhe7d1rbBVFGwfwEYhBbglvBQUSuQqI4WowgpBwkVuqCAnhJiQSMJQEU4NgQBEkaEBBMaBg/KBIJdxiuIkQrkElCIIKCAaQAl8aUJFYiiBI593/w04Zlp09c0pbiv3/ks2ZfXbOnNPt2efMntN9eo8OKCIiD5XCWyKilJgwiMgbEwYReWPCICJvTBhE5K3cJIz8/Hx1/vz5cI2IyqPEhHHq1Ck1aNAg1bBhQ5Wdna0uXLgg8ZMnT6rnnntOPfjgg+qpp55Se/fuTYyPHj1a3XPPPUVLp06dJG6bPXu2+vnnn6X977//qunTp6v69eurd955R2Jgj4GlVatW4RYiKguJCWPKlClq+PDh6ujRo3KQL1q0SOLz589Xc+fOlYQyZswYNXbs2MT4//73P3X27FmFP/nAsnbtWokbP/74o6pVq1a4ptSaNWtU48aN1fHjx9WmTZvC6HVmDCxHjhwJo0RUFhITxo4dO1RmZqaqWrWqGjBggFq9erXE//jjD1WvXr2iON7tk+Jz5sxRdevWlTaSQEZGhrTh8uXLcj8kCGPFihWqf//+qnr16mr79u1hlIjutMSE0bx5c0kaly5dUjk5OTLTALSNbdu2qZkzZ0rbFTcKCwvVmTNnVOXKlcOIkoTQvXv3cO26w4cPq82bN6tmzZqpzp07qx9++CHcotSCBQsk3rVrV3Xo0KEwSkRlITFhzJo1S02dOlW1adNGVatW7aaZAezbt09VqVJFZiE2V3zXrl2qQYMG4ZpSJ06cUE2aNJG+NiQVPN6BAwfUtGnT1OTJkyW+fv16+YwECWX8+PFq0qRJEieisuF9Lcnp06fViy++qNatWyfrOHhr1Khxy+zAFYeJEyfKh5smQeD0xHwzsnXrVlWnTh3Vu3dvNXToUJlh1KxZU125ckU1atRI5eXlST8DpzJINtE4EZWexBkG9OvXTxUUFEgi6NWrl8SWL18upxdICrjFelLcwAzDnk08/PDD6vHHH5eladOmqmXLlvKNzMCBA+VzDCSFnTt3qm7dukn/kSNHyjc1//zzj1q5cmVRnIjKCGYYSV5//XUdvPPrUaNG6WA2ILHgoMespGgZMmRIYtwIZg9h62a//vqrnjFjhp43b54OTkd0fn6+fumll/RDDz2kg+ShT548Kf02bNigu3Tpoh944AE9ePBgnZubK3EiKhu8vJ2IvKU8JSEiMpgwiMgbEwYReWPCICJvTBhE5I0Jg4i8MWEQkTcmDCLydscThrkEPqqk4iWtrB6HqDwqF3/piYMw+jTiYhA9YE0f33icVGPYXM+LrkOpxWvXrqnatWuHEfov8ZphoB5Fjx49pHJWVlZWGFVy9aoNB5PrAL169apcmh7H9wA0B6vpb25dccNss7fb6zZXvDSZ/WaWVKUHXf3xe3r66aelRCIuGkQlM3D1x5XAuIIYxY1QghEX9Rmu31fS7xHsUouu55NuiceNGzfK6+/+++9Xffv2VXv27JG4a3xXSUhX6UdXKUp7DCwsCRkIDo6Ugh2ug1+SLiwsDCPxLl68iCMtXLsZ4p4PJ5L6mrHilqhoLGk9ro3buKUkpTueq3/btm31tm3b9OXLl/VXX32l27VrJ3FX/yVLluicnBx96dIlvWXLFr148eJwy42fO8oVh+AA1rNmzdJff/21rLueDy4szMvLk8ddtmxZyjguQPzrr790kND05s2bdfPmzSXuGj9Igvrs2bPSBtNetWqV/vTTT3VBQYHu3r27xGDo0KH6iy++KHrct99+W+Kun7Mi89oj2HGpkoXh2sn4ZUe3Yd0sUa5xwLXNNU6qxXC1bXHx6DjpSve+rv49e/bUhw8flvaff/6pn3nmGWm7+mdmZhZdgYyDKHj3ljbE/b7AFcfBhoN5+fLlRQnD9XxGjBght4D7tW/fXtquuIHEsHXrVrmyGVzj244dO6aDmYW0g1mEPnfunLRtuPoZYwMe94knnpB2ur+XiiDlHsFOsxcjum4g9uGHH+pHHnlE3nFscf3BxM2YcYstbrtZoqKxpHUzhlnixMWT+vvAfefPn6+bNm0ql+8fPHgw3BLP1R9lAJ588kk9ZcoUeac376yu/igfYA4m3GLd5vqZ4uIoPRCcrtyUMFzPx/bll1/KEhUXx+O+8MIL+u+//5b1VONfu3at6LkAXpOYQWA/YNa8f/9+iXft2lUHpz0y7scff6xr164tcdd+q8i8XuVxLxC8OOLiiOGXFJzH6uC8MoxeF9cfXOO43M44SevptkvK+vXr5Z0P73I44Pr06RNuiefqv2LFCr1z507922+/6c8++0xqmYCrfzRhNGrUSNqG62eNxlHP5JdffpG2nTBcz8f4/vvv9aZNm8K1G1xxnPIuXbpUT5o0SdZTjY/nceLEiXBNSyJYu3atzKaQIHr16iXxb7/9Vj/22GO6WbNm+vPPP5dbSPf3UhF4vfp9XzhgYkgoKLxjK844cbDNtUTF9YkuhqsNZj0aL2mYEterVy9cS83u36pVq6J3X5w6RGcMYPfHKYg5Jblw4YKcothcP2s0jmk/PuPC8tZbb8m79KlTpxKfz7p16/T27dvDtRtccQPPv0GDBtJO9fO+/PLL8jo0cKqB4kyA/nH7Gc877tQm3d/Lf1XKb0mCdx65xSfqNnx1Bma7LTc3VwXTN9WhQ4cwolRwjim3+JcCLvgk2lfw3G9ZXKJ9ouu3y3yKXlzplh509ce3WPg/Loij2js+9QdX/2HDhsk3EIjv3r1bDR48WOLg+n3FxV2lFl3PJ3i3TqvE45AhQ+T5Bwet189rREtCuko/QlwpSpaEjBEcNInQxV6MuBiMGzdOt27dWnfs2LHoHBFc/SEuntTPZzHsNiStm/uaJU5cPKm/j6TSg1lZWWHrBld/vNPjgz3E+/fvr48cOSJxV//gQNATJkzQGRkZOjs7W9YN8zNFfy5XHKKlFl3PJ90Sj2vWrJHXE2YWY8aMkW9SwDW+ES0J6Sr9CHGlKFkS8lZ33R9uGdHtrv6p+tnrrrbNFSeqCMrFtSTpHoC+B21cP7OObVhsdt/o/eL6E1U0LAJMRN54tSoReWPCICJvTBhE5I0Jg4i8MWEQkTcmDCLyxoRBRN6YMIjIGxNGCYiWKiwulJwrzVKIUen+9arpn859iqO87E9XycAKDX/pWVzBzgxbVBLKuhRi0jguuMz7Nl82ZeZ296erZODdpiSP02LNMN599125zLlJkybq3LlzNxVUpeLDJeYdO3ZM+Q5erVq1sHUrXIrtK2kcl6pVq4at8u929ycu4a9Xr578zAMGDCj1mVVJK43jNDFhmKmavQCmeUHGVY0bN1ZLly5VPXv2lLirf3mNu9pvvPGG1HjYsmWLxJPY97ctWrRI9k/r1q3ViBEjwqibGaNSpUo3jecaHxYuXCiVrE21bLj33nvDlr+4cY4dOyZ1KVDjwlQBT3L06FHVtWtX1aVLF2kDnvehQ4fk9qefflIfffSRxJO4ft47sT9zcnLkFrZt26ZmzpwpbTOGvZTHeLrHqZdwppEW1LlArcNPPvlE6nfadS/uBvYU1J5im/i+fft08KKRepGpuEoVtmjRQn/33XdSDs4uE5ckbpySLIUYxzUO6kUghueOWhC2uPFRlwLjfPPNN9KGV155RUreBe/gUt4OFbBSKY/701UysLwrjePU/5VlCaY2OpiuSdER1Dx88803wy13D/tFE9e+cuWKFJbxEfcCRHEXnAOPHDlSko+PuHEgLm5iOAB8SyHGcY2DojHYhiVa+i5ufPTHPkMRHrQByQK1MlFLE/fBvzXwETf+ndqfqUoGlmelcZzG71FPpiLS3QjvWKjfiA/F8GLBTAPQRuUovNv4FH1F8VzcBy802wcffCBjBlNyqT2Zinnns6tegWt8xPBOi3cN+3nihYFtv//+exhJ5hoHFaxMvUybmZFFtz377LOyLzELQBv27t0rfV999VW5xfZUytP+xAedqPYFqECO9btRSR6nt5Uw7mZ4IeAf4rz33nvyYsECuH3++eelJD1e/KmY+5r7G8OHD5fq0ygc+/7774dRN3sce6y4GKRbCtGcJkS5xsHUPDgHluc/Z84cidljRx8D/VFkF99M2P8rBH1QURy3WE8lbmy4E/vTVTKwImMBHQuKw953331SbPZu+jYgFRRqxgdeKHxLdDuYMCz2p8X/pd2C6ttt27ZVwawpjBAVDxMGEXnjn4YTkTcmDCLyxoRBRN6YMIjIGxMGEXljwiAib0wYROSt3CSM/Px8df78+XCNiMqjxIRx6tQpNWjQINWwYUOVnZ2tLly4IHFX6TJXfPTo0Tdde9+pUyeJ22bPnl1UdwF/yjx9+nRVv379m4p+2GNgQe0CIio7iQljypQpavjw4VIQBQc5ipjA/Pnz1dy5cyWhjBkzRo0dOzYxjpqKZ8+elT+3xrJ27VqJGyhYUqtWrXBNqTVr1kjRj+PHj6tNmzaF0evMGFiOHDkSRomoLCQmjB07dqjMzMyiEmWrV6+WuKt0mSs+Z84cVbduXWkjCWRkZEgbcMEX7ocEYaxYsUL1799fVa9eXW3fvj2MEtGdlpgwmjdvLkkDV2+iXJkpveYqXeaKG4WFherMmTOqcuXKYURJQkApONvhw4fV5s2bVbNmzVTnzp2l+rOxYMECiaMcHMq/EVHZSUwYs2bNUlOnTlVt2rSRQqn2zAD27dunqlSpIrMQmyu+a9cu1aBBg3BNqRMnTkiBUvS1Iang8Q4cOKCmTZumJk+eLPH169fLZyRIKOPHj1eTJk2SOBGVDe+rVU+fPi3/z2HdunWyjoO3Ro0at8wOXHGYOHGifLhpEgROT8w3I1u3blV16tRRvXv3VkOHDpUZRs2aNdWVK1dUo0aNVF5envQzcCqDZBONE1HpSZxhQL9+/VRBQYEkgl69ekkM9RVweoGkgFusJ8UNzDDs2QQqc6MqNZamTZuqli1byjcyAwcOlM8xkBRQ9KVbt27Sf+TIkfJNDUrpr1y5sihORGUEM4wkKCCKoqijRo3SwWxAYsFBj1lJ0WJKl7niRjB7CFs3Qw3NGTNm6Hnz5ungdETn5+dLwVcUn0X16pMnT0q/DRs26C5dukiRWVSyzs3NlTgRlQ0W0CEibylPSYiIDCYMIvLGhEFE3pgwiMgbEwYReWPCICJvTBhE5I0Jg4i83fGEYS6BjyqpeEkrq8chKo/KxV964iCMPo24GEQPWNPHNx4n1Rg21/Miqgi8ZhioR9GjRw+pnJWVlRVGlVy9asPBFHeAukr3Gb4HoDlYTX9z64obZpu93V63ueKlCVfk4kpeFBlCKURcXJck3f5EJSY4OFLq1KmT3rNnjy4sLAwj8S5evIgjLVy7AReS5eXl6UuXLully5bpdu3ahVvckp4atrmWqGgsaT2ujdu4pSQtWbJE5+TkyP7ZsmWLXrx4cbglXrr9iUqK1ysfB0iqZGHEHUwjRowIW1pe5O3bt5d20gEYFzNc21zjpFoMV9sWF4+Ok67MzMyiK4ELCgp03759pe2Sbn+ikpLylMScYlSqVOmm0w207XXbwoULpaI3ivuCq3Rf8PiyGGZMM2503WZvc/UxzOOYx4qu21KNVRpQahDFggD1UFMVN063P1FJSZkwogeZcfXq1bB1q9atW6tVq1ap1157LYxc5yrdZ5jHiD6mWbfZ21x9iiNurFQJpCQfH5Cc05Fuf6LiKvYrza6cFYUCvS1atJAEYaBiF6pl9enTJ4zcHjMTsBeXaJ/oeipIBr59iwOzMfM/X1Bw+dFHH5W2S7r9iUpKyoSBfyoE+GTedu3aNbk12225ubnq4MGDqkOHDrKeqnSfkc5Bad7V7cUl2ie6frvSST5xhg0bpjZu3CjfduzevVsNHjw43BIv3f5EJSY4aBKhi70YcTEYN26cDk5JdMeOHfX+/fsllqp0X9w40XUw/XwWw25D0rq5r1nixMWT+vsIDnw9YcIEnZGRobOzs2XdyMrKCls3JPUnKk133R9uGdHtrv6p+tnrrrbNFSeqCMrFp2XpHoC+B21cP7OObVhsdt/o/eL6E1U0LAJMRN74fRwReWPCICJvTBhE5I0Jg4i8MWEQkTcmDCLyxoRBRN6YMIjIGxMGEXljwiAib0wYRORJqf8D2M+EXra+6kwAAAAASUVORK5CYII=" alt="" />

很明显。。。在性能方面,推导式不合适