Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 越接近其最大赋值,加法越慢_Javascript_Math - Fatal编程技术网

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
a
do..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;