zoukankan      html  css  js  c++  java
  • 数论的一些小结论

    1.有两个数p,q,且gcd(q,p)=1,则最大无法表示成px+qy(x>=0,y>=0)的数是pq-q-p(对于n>pq-q-p,都可以表示成px+qy;而pq-q-p,就无法表示成px+qy)。

    2.皮克定理说明了顶点是整点的多边形面积S和内部格点数目a、边上格点数目b的关系:S = a + b/2 - 1。

    3.一条直线((0,0),(n,m))上的格点数等于n与m的最大公约数+1。

    证明:

    记n,m最大公约数k,m=ak,n=bk,那么(a,b)=1
    考察(0,0)到(m,n)直线上一个格点(x,y)(x>0,y>0),有:
    x/y=m/n=a/b
    即bx-ay=0
    因gcd(a,b)=1,必有b|y,a|x,再由x≤m,y≤n,知这样的x,y有k个
    加上(0,0)点,所有的格点数=k+1,得证

    4.N! 中 质因子r的个数 为 N/ r + N/(r2) +N/(r3) + N/(r4)+......  

    简单证明:

    考虑1~N中所有r的倍数都会有一个质因子r,那么加上N/ r

    所有r2 的倍数都有有2个质因子r,但是其中的一个已经在前面算过了,所以只要加上 N/(r2).

    r3r4......也是一样的道理。

    特别的质因子2的个数为N-N的二进制数中1的个数。(可以不断减去lowbit 来得到1的个数)

    简单证明:对于二进制数为(100000)2的N,那么利用上面的式子可以得到2的个数为(11111)2 比N少了1

    对于二进制数为(100100)2的N.可以拆成(100000)2+(100)2 两个数都会减少1..

     所以在(1000....000)2的基础上每把一个0变成1都会使结果减少1.    所以质因子2的个数为N-N的二进制数中1的个数证毕。

  • 相关阅读:
    redis使用lua脚本遇到的问题
    redis使用scan count 返回数量不准确
    window系统下搭建本地的NuGet Server
    windows10使用docker发布.netcore程序
    windows10使用docker安装mysql
    windows10搭建redis4.0集群
    windows10配置redis主从复制
    windows10安装redis4.0
    mysql 共享排他锁
    mysql drop表以后恢复数据
  • 原文地址:https://www.cnblogs.com/vb4896/p/3968994.html
Copyright © 2011-2022 走看看