2016-02-13 50 views
-6

编码器在这里非常基本的技能:基本Python函数(数学参与)

我刚开始进入Python中的编码和在困难的类型的功能测试自己。任何数学家都会帮我解决这个问题吗?我已经找到了问题的字符串网上我可以除了最后的一个做:

function

我那种只需要一个什么样的公式,这是一种解释,应该如何制定出来,所以我也许可以用

def A(S,K): 

任何帮助表示赞赏定义它,谢谢

+3

哪一部分是你遇到问题? if/else检查非常简单。代码在函数定义中几乎是*。 – timgeb

+0

这似乎不是一个Python问题。更多关于如何以编程方式解决数学问题的问题。 – putvande

+4

'如果s <= k:return k;如果k

回答

1

的公式是非常基本的,它说:对提供的参数“S”返回值“K”的函数“F”,如果值“S”是小于或等于则值“K”,如果该值作者: '是大于值 'K' 和下部然后将值 '2 * K' - 返回值 '2 * K-3',否则返回0

的Python:

def A(S,K): 
    result = 0 
    if S <= K: 
     result = K 
    elif K < S < 2*K: 
     result = 2*K-S 
    return result 
0

你可以像定义功能:

def A(S,K): 
    if S <= K: 
     f = K 
    elif K < S and S < 2*K: 
     f = 2*K - S 
    else: 
     f = 0 
    return f 
0

利用该您可以定义返回结果的函数,可以避免堆叠分支,因为

def A(K,S): 
    if S<= K: 
     return K 
    if S>= 2*K: 
     return 0 
    return 2*K-S 

或者作为一个班轮也强调了它是一个连续函数

A = lambda K,S : max(0, min(K, 2*K-S)) 

RESP。

A = lambda K,S : max(0, 2*K - max(K, S))