2

例:NestList(f、x、3)----> [x、f(x)、f(f(x))、f(f(f(x)))]

http://reference.wolfram.com/mathematica/ref/NestList.html

4

3 に答える 3

6

あなたはそれをジェネレータとして書くことができます:

def nestList(f,x,c):
    for i in range(c):
        yield x
        x = f(x)
    yield x

import math
print list(nestList(math.cos, 1.0, 10))

または、結果をリストとして表示する場合は、ループで追加できます。

def nestList(f,x,c):
    result = [x]
    for i in range(c):
        x = f(x)
        result.append(x)
    return result

import math
print nestList(math.cos, 1.0, 10)
于 2012-09-15T07:07:10.350 に答える
1
def nest_list(f, x, i):
        if i == 0:
            return [x]
        return [x] + nest_list(f, f(x), i-1)


def nest_list(f, x, n):
    return [reduce(lambda x,y: f(x), range(i), x) for i in range(n+1)]

私は別の方法を見つけました!

于 2012-09-15T08:54:09.547 に答える
1

モジュールを使用しfunctionalます。scanlこれには、削減の各段階を生成する、と呼ばれる関数があります。次に、のインスタンスのリストを減らすことができますf

于 2012-09-16T19:22:24.320 に答える