Saat mengerjakan matematika dan menyelesaikan dengan Level
persyaratan pengalaman XP
, kami memperoleh:
Level=1+1+8×XP÷50−−−−−−−−−−−−−√2
Misalnya, berapa level pemain untuk ?XP=300
1+1+8×300÷50−−−−−−−−−−−−−√2=4
Seperti yang diminta.
Atau, untuk level apa XP = 100000
?
1+1+8×100000÷50−−−−−−−−−−−−−−−−√2=63
Lebih umum diungkapkan, untuk ambang awal yang sewenang - wenang di Level 1:
Level=1+1+8×threshold÷50−−−−−−−−−−−−−−−−−−√2
Anda juga dapat melakukan kebalikannya dan menghitung yang XP
dibutuhkan untuk setiap level dengan menyelesaikan rumus di atas untuk XP.
XP=(Level2−Level)×threshold2
Perhatikan bahwa rumus di atas berfungsi dengan pecahan tetapi Anda harus membulatkan ke nilai integer berikutnya. Misalnya di C ++ / C # Anda bisa menggunakan Level (int).
Untuk mendapatkan rumus bentuk tertutup di atas, saya menggunakan persamaan perbedaan, penjumlahan Gauss dan rumus kuadratik.
Jika Anda tertarik dengan solusi formula ini langkah demi langkah ...
Kami melakukan algoritma rekursif dengan memulai pertimbangan kami yang pada akhirnya Experience(next_level) = Experience(current_level) + current_level*50
.
Sebagai contoh, untuk mendapatkan kita memiliki:XPLevel3
XPLevel3=XPLevel2+2×50
Di mana, 2*50
berasal dari permintaan OP bahwa pengalaman yang diperlukan untuk mencapai level berikutnya adalah level saat ini * 50.
Sekarang, kita mengganti dengan logika yang sama ke dalam rumus. Itu adalah:XpLevel2
Pengganti ke dalam rumus di atas:XPLevel2=XPLevel1+2×50
XpLevel3=XpLevel1+1×50+2×50
dan hanya 50, yang merupakan titik kita mulai. KarenanyaXpLevel1
XpLevel3=50+2×50=150
Kita dapat mengenali pola untuk secara rekursif menghitung level yang lebih tinggi dan rantai penjumlahan yang terbatas.
XpLevelN=50+2×50+3×50+...+(N−1)×50=∑i=0n−1i×50
Di mana N adalah level yang ingin dicapai. Untuk mendapatkan XP untuk level N, kita harus menyelesaikannya untuk N.
XpLevelN÷50=∑i=0n−1i
Sekarang sisi kanan hanya penjumlahan dari 1 sampai N-1, yang dapat dinyatakan dengan terkenal Gaussian penjumlahan . KarenanyaN×(N+1)÷2−N
XpLevelN÷50=N(N+1)÷2−N
atau hanya
2∗(XpLevelN−50)÷50=N(N+1)−2N
Akhirnya, meletakkan segala sesuatu di satu sisi:
0=N2−N−2×XpLevelN÷50
Ini sekarang merupakan formula kuadratik yang menghasilkan solusi negatif dan positif, yang hanya positif yang relevan karena tidak ada level negatif. Kami sekarang memperoleh:
N=1+1+4×2×XpLevelN50−−−−−−−−−−−√2
Karenanya, level saat ini pada XP dan ambang linear adalah:
Level=1+1+8×XP÷threshold−−−−−−−−−−−−−−−−−−−√2
Level=XP√5.0XP
Level 100
Sunting : Formula ini berfungsi penuh sebagaimana mestinya dan menghasilkan dengan benar level
kondisi saat ini XP
dengan perkembangan ambang linier seperti yang diminta oleh OP. (Formula sebelumnya menampilkan "level + 1" dengan mengasumsikan pemain mulai dari Level 0, yang merupakan kesalahan saya - saya telah menyelesaikannya saat istirahat makan siang dengan menulis di tisu kecil! :)