zoukankan      html  css  js  c++  java
  • 【数学】数论常识

    自然数的k次幂求和

    \(\sum_{i=1}^{n}i=\frac{i(i+1)}{2}\)

    除法取整

    编程语言的除法取整默认是向0取整,对于非负整数来说,即向下取整。也就是说, \(\lfloor \frac{x}{y} \rfloor = x/y\) 。非负整数的向上取整需要加上分母-1的值,这个很好理解,当分子恰好是分母的倍数时,这个会被忽略掉,其他情况会恰好再凑够一个分母, \(\lceil \frac{x}{y} \rfloor = (x+y-1)/y\)

    费马小定理

    \(p\) 是质数,且 \(a\)\(p\) 互质,有 \(a^{p-1} \equiv 1 \pmod{p}\)

    用于求解模质数意义下的乘法逆元。也用于大数的质性检测。

    威尔逊定理

    正整数 \(n\) 是质数的充要条件是 \((n-1)!\equiv -1 (\mod n)\)

    平方和的奇怪性质

    \(p>2\) 时, \(x^2 \equiv 1 (\mod p)\) 恰好有两个解,就是 \(x=1\)\(x=p-1\) ,而且模 \(p\) 意义下自己是自己逆元的只有这两个,其他的都是和不同的数配对成为逆元。

    费马平方和定理

    奇质数可以表示为平方和的充要条件是该奇质数是 \(4k+1\) 型。

    奇整数的平方都有 \(8k+1\) 的形式。

    费马大定理

    当正整数 \(n>2\) 时,不定方程 \(x^n+y^n=z^n\) 无正整数解。

    质数数量

    \(n\) 个正整数中,质数大概有 \(\frac{n}{\ln n}\) 个。

    快速乘

    首选

    ll qmul(ll a, ll b, ll mod) {
        return (lll)a * b % mod;
    }
    

    最直观

    ll qmul(ll a, ll b, ll mod) {
        if(a >= mod)
            a %= mod;
        ll res = 0;
        while(b) {
            if(b & 1) {
                res += a;
                if(res >= mod)
                    res -= mod;
            }
            a += a;
            if(a >= mod)
                a -= mod;
            b >>= 1;
        }
        return res;
    }
    

    利用玄学

    ll qmul(ll a, ll b, ll mod) {
        ll res = (ld)a / mod * b;
        res = ((ull)a * b - (ull)res * mod) % mod;
        if(res < 0)
            res += mod;
        return res;
    }
    
  • 相关阅读:
    Django复习
    AI-CBV写法
    CHENGDU3-Restful API 接口规范、django-rest-framework框架
    人工智能玩具制作
    POJ 3176 Cow Bowling
    HDU 2044 一只小蜜蜂
    HDU 4662 MU Puzzle
    POJ 3262 Protecting the Flowers
    POJ 1862 Stripies
    POJ 1017 Packets
  • 原文地址:https://www.cnblogs.com/purinliang/p/13672231.html
Copyright © 2011-2022 走看看