信息安全与数学基础-笔记-①整数的可除性

整除

  • a = bq
    公式表达的意思:b整除a,a可被b整除
    用符号表示:b | a
    否则:a不能被b整除的话用下面这个符号
    在这里插入图片描述
  • 注意的点:
    0是任何数的倍数
    1是任何数的因子
    一个数的本身即是自己的倍数,又是自己的因子

在该表达方式中

  • ①正负都适用:因为能否整除这件事情就不受正负影响
  • ②传递关系:a | c , c | b => a | b
    解释:整除之间的关系,因为a能整除c,并且c能整除b,a>c>b那么a必然能整除b
    举例:2,4,8就是对应这样一种关系
  • ③独立规则:p | ab => p | a 或者 p | b
    解释:显而易见,整除之间玩的就是倍数的关系,既然ab能被整除,所以ab之间必然有个与p是倍数关系,倍数再乘以一个无关要紧的数字,其本质就是将一个p的倍数再乘以一个倍数的意思。
  • ④运算关系: c | a , c | b => c | a+b 或者c | a-b
    解释:因为c能整除a / b,那么也就是说c与ab都有倍数关系,所以当我们将两个与c有倍数关系的进行相加减其最后的结果肯定也是与c车呈倍数关系。本质就是倍数之间的运算。

素数

  • 1既不是素数也不是合数(合数:就是除了1和素数之外都是合数,在自然数中大部分都是合数)
  • 素数的判断规则:
    在这里插入图片描述
    我们要判断一个n数字是否能被范围内[2, n \sqrt n n ] 的素数整除,如果都不能则就是素数。
    所以步骤就是:1:求出 n \sqrt n n ,然后计算n是否能被[2, n \sqrt n n ] 区间内的素数整除,如果都不能就表示是一个素数。
    注意:这里很容易搞混,p和n到底谁是我要判断的数字?我们事实上要判断的是n是否为素数,所以是把n缩小范围,然后求2- n \sqrt n n 内是素数的数能否整除n就能够足以判断出n是否为素数。当然在编程的时候我经常直接判断该范围内的数字都不能整除n就表示为n是素数。
    所以n是我们要判断是否为素数的数字,p是我们找的用来判断是否是整除n的素数数字而已。

带余除法

  • 定理如下:
    在这里插入图片描述
    r 是余数,也就是a 被 b 除 余数为r
    解释:该定理引出了后面要介绍的欧几里得算法。

最大公因数(欧几里德算法)

在编程中求数之间的最大公因数一般用名字为:gcd(num1,num2…)的函数进行求解。

  • 最大公因数表达形式:(a,b)= num
    用括号表示数字之间的最大公因数为num,当num = 1的时候,即最大公因数为1时,我们称括号内的数字为互素(并不是说这里的数字为素数,只是说他们之间是互素关系)
  • 互素关系在信息安全与数学基础后面的应用非常重要
    (a1,a2,a3…an)= 1称a1,a2,a3…an互素。注意的是,这不是两两互素,与两两互素关系不一样,而是括号内所有数字之间都互素。

  • 因子规则:若 a | b 则 (a,b) = a
  • 0规则: (0,b) = b
  • 倍数规则:3(a,b) = (3a,3b)
  • 传递规则:(a,b) = d, (d, c) = e => (a,b,c) = e
  • 排他规则:已知c | ab 若(a,c) = 1 => c | b
    解释:a与c是互素的,很明显只有c能整除b才符合c | ab
  • 缩减规则:d | a, d | b ,则可以 ↓
    在这里插入图片描述
    通过上述可以得出:ab同时除以他们的最大公因数时,也就是代表着他们共同能够被整除的数字已经去除掉了,因此他们变成互素,最大公因数为1
    在这里插入图片描述

  • 如何求最大公因数
    ①短除法
    最后最大公因数就是2 × 3 = 6
    在这里插入图片描述

② 欧几里德算法(也称:辗转相除法)
在带余除法中:a = qb + c
其中:(a,b) = (b,c)
因此利用该特性,一直循环到c = 0的时候,上一条公式的c即算出了他们的最大公因数。
例子:(173,46) = 2
在这里插入图片描述

裴蜀等式

将欧几里德算法逆向迭代回去即裴蜀等式。
若: (a,b) = sa+tb,其中s和t就是我们使用了欧几里德算法后,再逆向迭代回去得出的s和t,用来表示ab的线性关系。
举例:
在这里插入图片描述

  • 当ab互素的时候,就有:sa + tb = 1

最小公倍数

当m为给出的数字的倍数,并且是这些数字中能写出的倍数之中最小的称为最小公倍数。
如何求最小公倍数?

  • ①使用短除法后,2 × 3 × 28 × 15 = 2520,相比找最大公因数就是再多乘了两个数
    在这里插入图片描述
  • ②当给出的数字互素时候,那么最小公倍数就是这些数字相乘
    比如:(a,b,c) = 1, [a,b,c] = a×b×c
  • ③设: a , b, 最大公因数为:(a,b)
    在看上面的短除法中,其实是a,b都除了一个最大公因数,所以相当于除了两次最大公因数,但是最后又是将其2 和 3也算进去了,也就是说一共除了一次最大公因数,因此回到第三种方法的时候就是相当于总结了前面两种方法,直接将原来的两个数字出除一次最大公因数就是最小公倍数的结果。
    在这里插入图片描述

❀标准分解式❀

例子:
100 = 2 × 2 × 5 × 5 = 2 2 2^2 22× 5 2 5^2 52
45 = 3 × 3 × 5 = 3 2 3^2 32 5 1 5^1 51
这就是将一个数分解为标准分解式
计算技巧:从2开始除,能一直除2就一直除,除不了就除3除4…以此类推,最后再统计每个数字出现的次数,次数就是该数字的次方。该数字出现0次的时候也将其算进去,也就是 n 0 n^0 n0

标准分解式求最大公因数

以上述的100和45为例子,求(100, 45) = ?
计算出这两个数的标准分解式
100 = 2 2 2^2 22× 3 0 3^0 30× 4 0 4^0 40× 5 2 5^2 52
45 = 2 0 2^0 20× 3 2 3^2 32× 4 0 4^0 40 5 1 5^1 51
最大公因数就是找出每个数字对应标准分解式中:100中的2为底数的次方数为2,45中的2为底数的次方数为0,我们选择最小的次方数作为结果的乘积,同理100和45二者中,底数3最小的次方数也是0,4也是0,5是1,
所以100和45最大公因数为: 2 0 2^0 20× 3 0 3^0 30× 4 0 4^0 40× 5 1 5^1 51 = 5

标准分解式求最小公倍数

计算出这两个数的标准分解式
100 = 2 2 2^2 22× 3 0 3^0 30× 4 0 4^0 40× 5 2 5^2 52
45 = 2 0 2^0 20× 3 2 3^2 32× 4 0 4^0 40 5 1 5^1 51
最小公倍数和最大公因数正好相反,最大公因数在找数字作为乘积的时候是找次方数最小的那一个,那么在最小公倍数中我们要找的便是次方数最大的那个作为乘积。
最大公倍数: 2 2 2^2 22× 3 2 3^2 32× 4 0 4^0 40× 5 2 5^2 52 = 900

posted @ 2023-03-05 01:06  竹等寒  阅读(31)  评论(0编辑  收藏  举报  来源