xuzhouhudajz 发表于 2020-10-10 21:27:21

请问如何在脚本进行平方根运算

请问如何在脚本进行平方根运算,只有基本运算+ - * :

canary 发表于 2020-10-10 23:58:39

这游戏都很少出现浮点运算的,脚本我到现在都没用过。
基本都是整数加减乘除基本四则运算,偶尔用用余数。
搬个板凳,等大神开课。;keilai;

XEricSin 发表于 2021-1-10 03:28:09

可以通过循环迭代的方法逼近一个浮点近似值
!?FU(SqureRoot_iter);[已验证]
{
*x1=输入值
*v1存整数值,e1存小数值
!!FU:A?k;count function arguments
!!VRe11:S1;[初始根值]
!!VRe12:S2;[初始增长倍数]
!!VRe20:Sx1;[目标平方值]
!!re i/0/100/1;[最多100次迭代]
    !!VRe13:Se11*e11;
    !!VRe21:Se13-e20;[误差=e21]
    !!br&e21>-2/e21<2:;[精度达到]
    !!if&e21<=-2:;
      !!VRe11:*e12;[增长]
    !!el&e21>=2:;
      !!VRe11::e12;[抵消上次增长]
      !!VRe12:-1:2+1;[倍率减半]
      !!VRe11::e12;[缩短]
    !!en:;
!!en:;
!!VRe1:Se11; [输出小数]
!!VRe11:+0.499;
!!VRv1:Se11; [输出整数数]
}
不过在era3的标准库中已经有了FU(sqrt)函数,它调用的是外部的数学库。

Archer30 发表于 2021-4-19 05:20:17

ERA 3中非常简单粗暴,举个例子:!?FU(OnAfterErmInstructions);
!!VR(value:y):S16;                     
!!VR(valueFloat:e):S(value);
!!FU(Sqrt):P(valueFloat)/?(valueSqrtFloat:e);
!!VR(valueSqrt:y):S(valueSqrtFloat);
!!IF:M^%(valueSqrt)^;                   输入value,转换为浮点数,用FU(sqrt)进行浮点数开方运算,转换为整数,输出valueSqrt(即value的平方根)

页: [1]
查看完整版本: 请问如何在脚本进行平方根运算

捐赠