Php 我如何计算下一级别的剩余分数?
我正在开发一个水平测量系统,能够让它像我想要的那样计算水平,但是我想向用户展示在下一个水平之前需要多少经验,而我就是无法计算出来Php 我如何计算下一级别的剩余分数?,php,function,Php,Function,我正在开发一个水平测量系统,能够让它像我想要的那样计算水平,但是我想向用户展示在下一个水平之前需要多少经验,而我就是无法计算出来 function experience($L) { $a=0; for($x=1; $x<$L; $x++) { $a += floor($x+300*pow(2, ($x/7))); } return floor($a/4); } function level($experience) { $return
function experience($L) {
$a=0;
for($x=1; $x<$L; $x++) {
$a += floor($x+300*pow(2, ($x/7)));
}
return floor($a/4);
}
function level($experience) {
$returned = 0;
$level = 0;
while ($returned <= $experience) {
$level++;
$returned = experience($level);
}
return $level - 1;
}
看起来您的方法工作得很好,也许您可能只需要一个多维数组来构造您的输入
$arr = [
'0' => [
'experience' => 7842,
'level' => 25],
'1' => [
'experience' => 7028,
'level' => 24],
'2' => [
'experience' => 6291,
'level' => 23],
'3' => [
'experience' => 5624,
'level' => 22],
'4' => [
'experience' => 5018,
'level' => 21],
'5' => [
'experience' => 4470,
'level' => 20],
'6' => [
'experience' => 3973,
'level' => 19],
'7' => [
'experience' => 3523,
'level' => 18],
'8' => [
'experience' => 3115,
'level' => 17],
'9' => [
'experience' => 2746,
'level' => 16],
'10' => [
'experience' => 2411,
'level' => 15],
'11' => [
'experience' => 2107,
'level' => 14],
'12' => [
'experience' => 1833,
'level' => 13],
'13' => [
'experience' => 1584,
'level' => 12],
'14' => [
'experience' => 1358,
'level' => 11],
'15' => [
'experience' => 1154,
'level' => 10],
'16' => [
'experience' => 969,
'level' => 9],
'17' => [
'experience' => 801,
'level' => 8],
'18' => [
'experience' => 650,
'level' => 7],
'19' => [
'experience' => 512,
'level' => 6],
'20' => [
'experience' => 388,
'level' => 5],
'21' => [
'experience' => 276,
'level' => 4],
'22' => [
'experience' => 174,
'level' => 3],
'23' => [
'experience' => 83,
'level' => 2],
'24' => [
'experience' => 1,
'level' => 1],
];
function experience($L)
{
$a = 0;
for ($x = 1; $x < $L; $x++) {
$a += floor($x + 300 * pow(2, ($x / 7)));
}
return floor($a / 4);
}
function level($experience)
{
$returned = 0;
$level = 0;
while ($returned <= $experience) {
$level++;
$returned = experience($level);
}
return $level - 1;
}
foreach ($arr as $key => $value) {
var_dump(level($value["experience"]));
var_dump(experience($value["level"]));
}
下一个层次的计算可能很简单。你可以只取当前经验值和下一个经验值之间的差值,或者将其除以所有点(例如10000),或者计算一个百分比
您可以根据自己的意愿修改方程式:
$arr=[
'0' => [
“经验”=>7842,
“级别”=>25],
'1' => [
“经验”=>7028,
“级别”=>24],
'2' => [
“经验”=>6291,
“级别”=>23],
'3' => [
“经验”=>5624,
“级别”=>22],
'4' => [
“经验”=>5018,
“级别”=>21],
'5' => [
“经验”=>4470,
“级别”=>20],
'6' => [
“经验”=>3973,
“级别”=>19],
'7' => [
“经验”=>3523,
“级别”=>18],
'8' => [
“经验”=>3115,
“级别”=>17],
'9' => [
“经验”=>2746,
“级别”=>16],
'10' => [
“经验”=>2411,
“级别”=>15],
'11' => [
“经验”=>2107,
“级别”=>14],
'12' => [
“经验”=>1833年,
“级别”=>13],
'13' => [
“经验”=>1584,
“级别”=>12],
'14' => [
“经验”=>1358,
“级别”=>11],
'15' => [
“经验”=>1154,
“级别”=>10],
'16' => [
“经验”=>969,
“级别”=>9],
'17' => [
“经验”=>801,
“级别”=>8],
'18' => [
“经验”=>650,
“级别”=>7],
'19' => [
“经验”=>512,
“级别”=>6],
'20' => [
“经验”=>388,
“级别”=>5],
'21' => [
“经验”=>276,
“级别”=>4],
'22' => [
“经验”=>174,
“级别”=>3],
'23' => [
“经验”=>83,
“级别”=>2],
'24' => [
“经验”=>1,
“级别”=>1],
];
功能体验($L)
{
$a=0;
对于($x=1;$x<$L;$x++){
$a+=底价($x+300*pow(2,($x/7));
}
返回楼层(a/4);
}
功能级别(经验)
{
$returned=0;
$level=0;
while($returned$value){
如果((int)experience($value[“level”])刚刚添加了一个更基本的代码版本。你能更新你的问题,更具体地指出你试图解决的问题吗?我个人不知道你想解决什么。
int(25)
float(7842)
int(24)
float(7028)
int(23)
float(6291)
int(22)
float(5624)
int(21)
float(5018)
int(20)
float(4470)
int(19)
float(3973)
int(18)
float(3523)
int(17)
float(3115)
int(16)
float(2746)
int(15)
float(2411)
int(14)
float(2107)
int(13)
float(1833)
int(12)
float(1584)
int(11)
float(1358)
int(10)
float(1154)
int(9)
float(969)
int(8)
float(801)
int(7)
float(650)
int(6)
float(512)
int(5)
float(388)
int(4)
float(276)
int(3)
float(174)
int(2)
float(83)
int(1)
float(0)