2015-04-06 39 views
0

我不擅長數學,我正在尋求將3個數學公式轉換爲php函數。如何將數學公式轉換爲php?

我試過查找如何單獨做每個部分的方程在PHP中,但我不斷得到奇怪的結果,所以我一定是做錯了什麼。

有指數增長的php函數嗎?

的圖像與方程在這裏: http://i.imgur.com/zIhMEEu.jpg

感謝


對於第二個方程,這是我有:

$rank = 50; 

$xp = log(24000 * (2^($rank/6) - 1)); 

echo $xp; 

的數量是這個太小是正確的。我也不知道如何將'ln 2'轉換爲PHP。 log()函數似乎出現在'php自然對數'搜索之下。

+2

你能告訴我們你已經做了什麼嗎? – 2015-04-06 07:49:51

+0

http://php.net/manual/en/book.math.php可能被證明是用於第二等式 一個良好的開端 – 2015-04-06 07:50:59

+1

'$ XP =(24000 *(2 ^($秩/ 6)-1)) /日誌(2)' – 2015-04-06 07:59:42

回答

4

爲了創建這些方程,需要組合各種函數。 log函數在您選擇的基礎上執行對數運算(如果不提供基礎,則爲ln)。 pow函數執行指數運算。

你的公式應該是:

function rank($xp) { 
    return floor(6 * log((xp * log(2)/24000 + 1), 2)); 
} 

function xp($rank) { 
    return floor(24000 * (pow(2, (rank/6)) - 1)/log(2)); 
} 

function kills($rank) { 
    return floor(xp($rank)/200); 
} 

有幾個更小括號比有絕對必要的,爲了清楚起見。一般

數學符號是相當比大多數編程語言(而不僅僅是PHP)由於事實,你可以使用任何你能想到的任何符號來表示各種概念更加緊湊和表現力。在編程中,你堅持調用函數。

此外,我不確定各種硬編碼數字代表的是什麼,或者在公式的上下文中是否有意義改變它們,但是您可能想要考慮將它們設置爲函數的額外參數。例如:

function kills($rank, $killsPerXp = 200) { 
    return floor(xp($rank)/$killsPerXp); 
} 

這增加了清晰的代碼,因爲它可以讓你知道什麼數字代表。同時,它允許您在多個地方使用它們時更容易地更改數字。

+0

我uppoint使用變量而不是幻數。 – Daniel 2015-04-06 08:04:21

+0

非常感謝你祖父開 - 你去超越,以幫助我。真的很感激它。 – 2015-04-06 08:05:19