zoukankan      html  css  js  c++  java
  • 挖坑---填坑

    一 .数学基础

    1.模运算的基本法则与相关定理

    1)(a+b)%p=((a%p)+(b%p))%p

       (a-b)%p=((a%p)-(b%p)+p)%p

       a*b%p=((a%p)*(b%p))%p

       (a^b)%p=((a%p)^b)%p (本质就是乘法)

    2)费马小定理,欧拉定理,扩展欧拉定理

     费马小定理:p为素数,a,p互质,a^(p-1)%p=1

     欧拉定理:a,p互质a^(phi(p))%p=1 (其实是费马小定理的一般情况,phi(n)表示1~n中和n互质的数的个数)

     扩展欧拉定理:①a,p互质,有a^b%p=a^(b%phi(p))%p ②a,p不互质,b<phi(p),有a^b%p=a^b%p ③a,p不互质,且b>=phi(p),有a^b%p=a^(b%phi(p)+phi(p))%p

    3)逆元的求法

    ①exgcd ②费马小定理/欧拉定理 ③O(n)求逆元 ④n!的逆元可以计算出最后一个然后往前倒推

    ps:

    1 void exgcd(int a,int b,int &x,int &y){
    2  if(!b)x=1,y=0;
    3  else {
    4   exgcd(b,a%b,x,y);
    5   int tmp=y;y=x-a/b*y;x=tmp;
    6  }
    7 }
    exgcd

    phi函数求法将会在后面介绍。

    2.部分数学函数

    1)三角函数与反三角函数

    sin(x) cos(x) tan(x) acos(x) asin(x) atan(x) 另有atan2(x,y) 暂时没看出来意义何在

    可以利用asin(1)来得到Π/2的值

    2)指数与对数函数

    exp(x)表示e^x  pow(x,y)表示x^y sqrt(x) log(x)以e为底的对数 log10(x)和log2(x)同理

    3)随机数函数

    rand()随机生成一个short型的数字 需要srand(x)写在最开始来选取第x张随机数表,否则默认第一张,为了方便我们通常写srand(time(NULL))来使得每次都用的不同的随机数表

    4)其他

    ceil(x)上取整 floor(x)下取整 fabs(x)/abs(x)取绝对值(未发现区别) modf(x,&y)返回x的小数部分,将其整数部分赋值到y上  fmod(x,y)表示x%y(dl型) 

  • 相关阅读:
    nginx 下 bootstrap fa 字体异常问题
    centos7 & mysql
    ssh authentication魔鬼细节--.ssh文件夹权限
    python self introspection
    __getattr__ 与动态属性
    dict.items vs six.iteritems
    django ATOMIC_REQUESTS
    HDU 4309 Seikimatsu Occult Tonneru (状压 + 网络流)
    UVaLive 4064 Magnetic Train Tracks (极角排序)
    UVa 11645 Bits (暴力+组合数学)
  • 原文地址:https://www.cnblogs.com/hyghb/p/12489066.html
Copyright © 2011-2022 走看看