这个python函数有什么作用?

时间:2012-09-03 02:59:26

标签: python math

def f(b, n):
    assert isinstance(n, int) and n >= 0
    def _f(n):
        if n == 0: return 1
        else: return b ** _f(n-1)
    return _f(n)

参加python课程,我们必须解释这样做,以便高中代数学生能够理解。我搞不清楚了。如果有人能在不给我答案的情况下将我推向正确的方向,我将不胜感激。

3 个答案:

答案 0 :(得分:3)

似乎代码定义了decorator _fn 的内部定义是为了便于递归。代码正在计算以下

b^(b^(b^(... (b^(b^0)))...))

即,给出

b = 2
n = 3

值为:

16 = 2^(2^(2^(2^0)

答案 1 :(得分:3)

该函数计算b提升到自身的力量n-1n至少1。它相当于这个更简单的非递归函数:

def g(b, n):
    assert isinstance(n, int) and n >= 0
    ret = 1
    for _ in xrange(n):
        ret = b ** ret
    return ret

看起来像这样的数学公式:

math formula of function

答案 2 :(得分:2)

  

参加一个python类,我们必须解释这样做,以便a   高中代数学生会理解

function f 采用两个整数 b n 。它将第一个 b 提升到第二个 n 的幂,并将 n 减少1.这将重复直到 n 为零,并返回累积结果。

这不回答任何与Python相关的问题,例如“assert isinstance(n, int) and n >= 0做什么”,以及我作为OP的练习留下的。