Javascript 越接近其最大赋值,加法越慢
好的,这个问题必须用一些伪代码来可视化,所以我们开始: 假设我有两个整数,一个是变量,另一个是常数 我这样说:Javascript 越接近其最大赋值,加法越慢,javascript,math,Javascript,Math,好的,这个问题必须用一些伪代码来可视化,所以我们开始: 假设我有两个整数,一个是变量,另一个是常数 我这样说: int current = 0; static int max = 20 考虑到这一点,我怎么加得越慢,越接近20,所以基本上它永远不会达到20。 以下是一个例子: 假设添加2需要3秒钟 但在前2个之后添加相同的2需要两倍的时间,以此类推 对不起,如果这很难理解,我该怎么做,但我已经尽力了:( 谢谢,祝你度过愉快的一天!这是一个值得玩味的例子 函数渐进插值或无误差插值(速率、速度)
int current = 0; static int max = 20
考虑到这一点,我怎么加得越慢,越接近20,所以基本上它永远不会达到20。
以下是一个例子:
假设添加2需要3秒钟
但在前2个之后添加相同的2需要两倍的时间,以此类推
对不起,如果这很难理解,我该怎么做,但我已经尽力了:(
谢谢,祝你度过愉快的一天!这是一个值得玩味的例子
函数渐进插值或无误差插值(速率、速度){
速度=+速度| | 1;
var start=Date.now();
返回函数(a,b){
var time=(Date.now()-start);
var t=数学功率(1-速率,时间*速度/1000);
返回a*t+b*(1-t);
}
}
var start=Date.now();
var插值=累进插值或无误差插值(1/16,1/10);
var output=document.getElementById(“输出”);
函数更新(){
var a=0,b=100,c=插值(a,b);
output.innerHTML=a+”。“+Math.floor(c)+”。“+b+”
实际上:“+c+”
运行时:“+(Date.now()-start)/1000+“s”;
requestAnimationFrame(更新);
//或
//setTimeout(更新,Math.random()*500);
//因为更新间隔并不重要
}
更新();
您可以使用以下公式
A=Pert
其中,A
是结果金额;p
是起始本金;e
是数学上的无理常数e
,自然对数的底,通常称为欧拉数,大约2.718281828459045
;r
是十进制利率;t
是时间ars,通常除以360
假设起始本金为0
,结果将为0
,因为没有利息可以累积0
的本金。我们可以从.01
的票面价值开始,然后将新本金设置为加在前一本金上的应计利息的结果
在javascript
ado..while
loop可以用来生成新的主体,在这里,我们以一半的起始速率停止循环,或者do..while
loop创建一个立即调用函数表达式来传递当前主体,在Promise
的函数e> 当前或当前*持续时间
,其中持续时间
为正整数,利用数组.prototype.reduce()
调用函数,该函数按顺序返回一个承诺
,将下一个设置超时
的持续时间增加当前
或当前*持续时间
您还可以将公式调整为Math.exp(r*(t/n))
或
A=每(t/n)
其中,n
可以是,例如,360
,以.05
的利率从本金1
连续复利,执行do.。而循环360
次,则为一个会计年度;这将在1
之间产生更多的总结果,即1
连续共有M按5%
的利率计提1年,最大可能结果为1.0512710963760241
,累计利息总额为.0512710963760241
将1
传递到composite
函数将返回1.0512710963760241
var current=0;//主体
var max=20;//到期日,以年为单位
var rate=.05;//以十进制表示的年利率
var time=1;//以年为单位的时间,或者是'1/360`
var N=360;//会计年度
var arr=[];//存储返回“承诺”的函数`
var持续时间=500;
var输出=document.querySelector(“输出”);
功能化合物(p,r,t){
return((p | |.01)*Math.exp(r*t));//或'Math.exp(r*t/N)`
}
做{
电流=化合物(电流、速率、时间);
(功能(当前){
arr.push(
函数(){
返回新承诺(函数(解析){
setTimeout(函数(){
output.innerHTML+=`当前主体:${curr}
`;
解决();
},当前*持续时间)
})
}
)
})(当前)
}而(电流max-current:${max-current}`;
});
你可以使用任意数量的不同方程组,这取决于你希望函数如何工作,函数很可能就是你想要的。这个公式类似于计算连续复利的公式。我不知道这是否有用,但继续加一半(或第三个或…取决于您希望的速度)当前<代码>和最大<代码>之间的差距如下:curent+=(max-current)/2;
!