python 函数模型(Functions as General

2019-03-11  本文已影响0人  TFprime

函数模型

参考:http://composingprograms.com/pages/16-higher-order-functions.html
下面是一个函数的模版,意思是我们要求黄金数,大概是1.6,但是我们先随便猜一个数,如果这个数不满足close的条件,就update这个数,直到满足close的条件

def improve(update, close, guess=1):
    while not close(guess):
        guess = update(guess)
    return guess

完整的代码如下

# -*- coding : utf-8 -*-

def improve(update, close, guess=1):
    while not close(guess):
        guess = update(guess)
    return guess

def golden_update(guess):
    return 1 / guess + 1

def square_close_to_successor(guess):
    return approx_eq(guess * guess, guess + 1)

def approx_eq(x, y, tolerance=1e-15):
    return abs(x - y) < tolerance

golden_number = improve(golden_update, square_close_to_successor)
print(golden_number)

输出:

1.6180339887498951
上一篇 下一篇

猜你喜欢

热点阅读