佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 1871|回复: 3

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

[复制链接]
  • TA的每日心情
    开心
    2023-4-1 07:08
  • 签到天数: 830 天

    连续签到: 1 天

    [LV.10]圣龙

    1301

    回帖

    1万

    金币

    0

    精华

    5级 Honorable Hero

    Rank: 5Rank: 5

    积分
    6840
     楼主| 发表于 2020-10-10 21:27:21 | 显示全部楼层 |阅读模式
    请问如何在脚本进行平方根运算,只有基本运算+ - * :
  • TA的每日心情
    无聊
    2020-12-10 03:20
  • 签到天数: 550 天

    连续签到: 3 天

    [LV.9]龙巫妖

    4640

    回帖

    35万

    金币

    2

    精华

    超级版主

    一路狂奔

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    16220

    论坛守望者

    发表于 2020-10-10 23:58:39 | 显示全部楼层
    这游戏都很少出现浮点运算的,脚本我到现在都没用过。
    基本都是整数加减乘除基本四则运算,偶尔用用余数。
    搬个板凳,等大神开课。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10806

    社区QQ达人

    发表于 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;[round]
    !!VRv1:Se11; [输出整数数]
    }
    不过在era3的标准库中已经有了FU(sqrt)函数,它调用的是外部的数学库。

    评分

    1

    查看全部评分

    回复 支持 反对

    使用道具 举报

     成长值: 14110

  • TA的每日心情
    郁闷
    2024-8-28 13:33
  • 签到天数: 1611 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5751

    回帖

    3万

    金币

    9

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    105281

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-4-19 05:20:17 | 显示全部楼层
    ERA 3中非常简单粗暴,举个例子:
    1. !?FU(OnAfterErmInstructions);
    2. !!VR(value:y):S16;                      [input: 16]
    3. !!VR(valueFloat:e):S(value);
    4. !!FU(Sqrt):P(valueFloat)/?(valueSqrtFloat:e);
    5. !!VR(valueSqrt:y):S(valueSqrtFloat);
    6. !!IF:M^%(valueSqrt)^;                   [output: 4]
    复制代码
    输入value,转换为浮点数,用FU(sqrt)进行浮点数开方运算,转换为整数,输出valueSqrt(即value的平方根)

    回复 支持 反对

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-11-15 10:47 , Processed in 0.466353 second(s), 17 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

    快速回复 返回顶部 返回列表