PyCharm中的Python递归测试-进程以退出代码139完成

问题描述 投票:0回答:1

系统: Ubuntu 14

IDE: PyCharm社区版3.1.1

Python: 2.7.6

具有循环调用的算法:

def fibonacci_dynamic(n):
    if n == 0:
       return 0
    if n == 1:
       return 1
    computed_values = {1: 1, 2: 1}
    return memoize(n, computed_values)


def memoize(n, computed_values):
    if n in computed_values:
        return computed_values[n]
    #recurrent call
    computed_values[n - 1] = memoize(n - 1, computed_values)
    computed_values[n - 2] = memoize(n - 2, computed_values)
    new_value = computed_values[n - 1] + computed_values[n - 2]
    computed_values[n] = new_value
    return new_value

测试:

from unittest import TestCase
from first.fib.fibonacci import fibonacci_dynamic
import sys
sys.setrecursionlimit(40000)


class TestFibonacci_dynamic_param(TestCase):

    def test_fibonacci_dynamic_26175(self):
        result = fibonacci_dynamic(26175)
        self.assertIsNotNone(result)

测试值是预期的。值26175测试有时会通过,但有时会终止并显示以下消息:Process finished with exit code 139我知道测试结果某种程度上取决于硬件资源,但我正在寻找Stackoverflow资深人士的更精确答案:)

python python-2.7 ubuntu recursion pycharm
1个回答
0
投票

您可以使用非递归算法来计算斐波那契数

© www.soinside.com 2019 - 2024. All rights reserved.