我有一個演算法來計算達到某個級別所需的 exp。但是我不知道如何根據他的EXP獲得所需的級別。
local function NextLevelXP(level)
return math.floor(1000 * (level ^ 2.0))
end
print(NextLevelXP(7)) -- output: 49000
現在我想要基于他的 EXP 的級別,例如:
local function MagicFunctionThatWillLetMeKnowTheLevel(exp)
return --[[math magics here]]
end
print(MagicFunctionThatWillLetMeKnowTheLevel(49000)) --output: 7
print(MagicFunctionThatWillLetMeKnowTheLevel(48999)) --output: 6
我嘗試了一些更糟糕和奇怪的演算法,但沒有成功。
uj5u.com熱心網友回復:
這可以簡化:
local function NextLevelXP(level)
return math.floor(1000 * (level ^ 2.0))
end
math.floor如果level將始終是整數,則不是必需的。
要反轉公式,您可以執行以下操作:
local function CurrentLevelFromXP(exp)
return math.floor((exp / 1000) ^ (1/2))
end
這里有必要對值進行下限,因為您將在級別之間獲得值(如 7.1、7.5、7.8)。要反轉乘以 1000 我們除以 1000,反轉指數我們使用指數的倒數,在這種情況下 2 變為 1/2 或 0.5
此外,作為一種特殊情況,^2您可以簡單地使用math.sqrt該值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/350506.html
上一篇:為什么是數量 ;與列印(數量 )不同;?這是一個陷阱嗎?
下一篇:給定正整數A的3次冪
