一、简介
我要实现这样一个表达式
z=总奖金
n=总名数
i=自己的排民
((n-i+1)/(1+2+3+…n))*z
这是一个分配奖金的式子。我试着用php的bc函数进行操作发现以下两种写法得出不一样的结果
表达式1:
a
r
r
[
arr[
arr[i]=bcmul(bcdiv((51-
i
)
,
i),
i),num,2),
r
e
w
a
r
d
[
′
L
e
a
d
e
r
b
o
a
r
d
′
]
,
0
)
;
表
达
式
2
:
reward['Leaderboard'],0); 表达式2:
reward[′Leaderboard′],0);表达式2:arr[
i
]
=
b
c
m
u
l
(
b
c
d
i
v
(
i]=bcmul(bcdiv(
i]=bcmul(bcdiv(reward[‘Leaderboard’],
n
u
m
,
2
)
,
(
51
−
num,2),(51-
num,2),(51−i),0);
二、现象
1.我代码
//根据时间计算排名奖励
public function calculateTheReward($dateStr="2021-04-12 00:00:00"){
$reward=Login::table('dailyReward')->where(['dateStr'=>$dateStr])->find()->toArray();
$arr=[];
$num=1275;
for ($i=1;$i<=50;$i++){
$arr[$i]=bcmul(bcdiv($reward['Leaderboard'],$num,2),(51-$i),0);//bcmul(bcdiv((51-$i),$num,2),$reward['Leaderboard'],0);
}
print_r($arr);die;
}
用表达式1得出结果:
用表达式2得出以下结果:
三、差距居然这么大为什么啊