浮点数比较,但是不用 eps

License: CC BY-SA 4.0

乘法

把所有数扩大 \(10^n\) 倍然后当成整数做,可能要用到 __int128.

(最后输出答案别忘了除回来)

缺点就是除法可能还是会爆精度,并且不支持开根之类的操作。

模法

突发奇想想到的一种方法.

大概思想就是同时记录浮点数和它对某个数取模后的值.

class Number{
    double approx;
    int precise;
    bool operator==(Number const &x){
        return precise == x.precise;
    }
    bool operator+(Number const &x){
        approx += x.approx;
        precise += x.precise;
        precise %= 998244353;
    }
    // ...
};

如果真的有人用到了这种方法可以告诉我(

posted @ 2024-04-05 14:08  383494  阅读(83)  评论(5)    收藏  举报