2016-02-13 52 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))