模运算

2023-10-27

http://blog.csdn.net/ld326/article/details/7880429

模运算即求余运算。“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。
  例如11 Mod 2,值为1
  上述模运算多用于程序编写,举一例来说明模运算的原理:
  Turbo Pascal对mod的解释是这样的:
  A Mod B=A-(A div B) * B (div含义为整除)

基本理论
  基本概念:
  给定一个正整数p,任意一个整数n,一定存在等式 n = kp + r ;
  其中k、r是整数,且 0 ≤ r < p,称呼k为n除以p的商,r为n除以p的余数。
  对于正整数p和整数a,b,定义如下运算:
  取模运算:a % p(或a mod p),表示a除以p的余数。
  模p加法:(a + b) % p ,其结果是a+b算术和除以p的余数,也就是说,(a+b) = kp +r,则(a + b) % p = r。
  模p减法:(a-b) % p ,其结果是a-b算术差除以p的余数。
  模p乘法:(a * b) % p,其结果是 a * b算术乘法除以p的余数。
  说明:
  1. 同余式:正整数a,b对p取模,它们的余数相同,记做 a ≡ b % p或者a ≡ b (mod p)。
  2. n % p得到结果的正负由被除数n决定,与p无关。例如:7%4 = 3, -7%4 = -3, 7%-4 = 3, -7%-4 = -3。
基本性质
  (1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)
  (2)(a % p)=(b % p)意味a≡b (% p)
  (3)对称性:a≡b (% p)等价于b≡a (% p)
  (4)传递性:若a≡b (% p)且b≡c (% p) ,则a≡c (% p)
运算规则
  模运算与基本四则运算有些相似,但是除法例外。其规则如下:
  (a + b) % p = (a % p + b % p) % p (1)
  (a - b) % p = (a % p - b % p) % p (2)
  (a * b) % p = (a % p * b % p) % p (3)
  (a^b) % p = ((a % p)^b) % p (4)
  结合率: ((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
  ((a*b) % p * c)% p = (a * (b*c) % p) % p (6)
  交换率: (a + b) % p = (b+a) % p (7)
  (a * b) % p = (b * a) % p (8)
  分配率: ((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p (9)
  重要定理:若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);(10)
  若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);(11)
  若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a - c) ≡ (b - d) (%p),
  (a * c) ≡ (b * d) (%p),(a / c) ≡ (b / d) (%p); (12)
  若a≡b (% p),则对于任意的c,都有ac≡ bc (%p); (13)
基本应用
  1.判别奇偶数
  奇偶数的判别是模运算最基本的应用,也非常简单。易知一个整数n对2取模,如果余数为0,则表示n为偶数,否则n为奇数。
  2.判别素数
  一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)。例如 2,3,5,7 是质数,而 4,6,8,9 则不是,后者称为合成数或合数。
  判断某个自然数是否是素数最常用的方法就是试除法:用比该自然数的平方根小的正整数去除这个自然数,若该自然数能被整除,则说明其非素数。
  C++实现功能函数:

  1. /*  
  2.  函数名:IsPrime  
  3.  函数功能:判别自然数n是否为素数。  
  4.  输入值:int n,自然数n  
  5.  返回值:bool,若自然数n是素数,返回true,否则返回false  
  6.  */   
  7.  bool IsPrime(unsigned int n)   
  8.  {   
  9.  unsigned maxFactor = sqrt(n); //n的最大因子   
  10.  for (unsigned int i=2; i<=maxFactor; i++)   
  11.  {   
  12.  if (n % i == 0) //n能被i整除,则说明n非素数   
  13.  {   
  14.  return false;   
  15.  }   
  16.  }   
  17.  return true;   
  18.  }   

 3. 最大公约数
  求最大公约数最常见的方法是欧几里德算法(又称辗转相除法),其计算原理依赖于定理:gcd(a,b) = gcd(b,a mod b)
  证明:a可以表示成a = kb + r,则r = a mod b
  假设d是a,b的一个公约数,则有d|a, d|b,而r = a - kb,因此d|r
  因此d是(b,a mod b)的公约数
  假设d 是(b,a mod b)的公约数,则d | b , d |r ,但是a = kb +r
  因此d也是(a,b)的公约数
  因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证。
  C++实现功能函数:

  1. /*  
  2.   函数功能:利用欧几里德算法,采用递归方式,求两个自然数的最大公约数  
  3.   函数名:Gcd  
  4.   输入值:unsigned int a,自然数a  
  5.   unsigned int b,自然数b  
  6.   返回值:unsigned int,两个自然数的最大公约数  
  7.   */   
  8.   unsigned int Gcd(unsigned int a, unsigned int b)   
  9.   {   
  10.   if (b == 0)   
  11.   return a;   
  12.   return Gcd(b, a % b);   
  13.   }   
  14.   /*  
  15.   函数功能:利用欧几里德算法,采用迭代方式,求两个自然数的最大公约数 函数名:Gcd  
  16.   输入值:unsigned int a,自然数a  
  17.   unsigned int b,自然数b  
  18.   返回值:unsigned int,两个自然数的最大公约数  
  19.   */   
  20.   unsigned int Gcd(unsigned int a, unsigned int b)   
  21.   {   
  22.   unsigned int temp;   
  23.   while (b != 0)   
  24.   {   
  25.   temp = a % b;   
  26.   a = b;   
  27.   b = temp;   
  28.   }   
  29.   return a;   
  30.   }   

4.模幂运算
  利用模运算的运算规则,我们可以使某些计算得到简化。例如,我们想知道3333^5555的末位是什么。很明显不可能直接把3333^5555的结果计算出来,那样太大了。但我们想要确定的是3333^5555(%10),所以问题就简化了。
  根据运算规则(4)a^b% p = ((a % p)^b) % p ,我们知道3333^5555(%10)= 3^5555(%10)。由于3^4 = 81,所以3^4(%10)= 1。
  根据运算规则(3) (a * b) % p = (a % p * b % p) % p ,由于5555 = 4 * 1388 + 3,我们得到3^5555(%10)=(3^(4*1388) * 3^3)(%10)=((3^(4*1388)(%10)* 3^3(%10))(%10)
  =(1 * 7)(%10)= 7。
  计算完毕。
  利用这些规则我们可以有效地计算X^N(% P)。简单的算法是将result初始化为1,然后重复将result乘以X,每次乘法之后应用%运算符(这样使得result的值变小,以免溢出),执行N次相乘后,result就是我们要找的答案。
  这样对于较小的N值来说,实现是合理的,但是当N的值很大时,需要计算很长时间,是不切实际的。下面的结论可以得到一种更好的算法。
  如果N是偶数,那么X^N =(X*X)^[N/2];
  如果N是奇数,那么X^N = X*X^(N-1) = X *(X*X)^[N/2];
  其中[N]是指小于或等于N的最大整数。
  C++实现功能函数:

  1. /*  
  2.  函数功能:利用模运算规则,采用递归方式,计算X^N(% P)  
  3.  函数名:PowerMod  
  4.  输入值:unsigned int x,底数x  
  5.  unsigned int n,指数n  
  6.  unsigned int p,模p  
  7.  返回值:unsigned int,X^N(% P)的结果  
  8.  */   
  9.  unsigned int PowerMod(unsigned int x, unsigned int n, unsigned int p)   
  10.  {   
  11.  if (n == 0)   
  12.  {   
  13.  return 1;   
  14.  }   
  15.  unsigned int temp = PowerMod((x * x)%p, n/2, p); //递归计算(X*X)^[N/2]   
  16.  if ((n & 1) != 0) //判断n的奇偶性   
  17.  {   
  18.  temp = (temp * x) % p;   
  19.  }   
  20.  return temp;   
  21.  }   

5.《孙子问题(中国剩余定理)》
  在我国古代算书《孙子算经》中有这样一个问题:
  “今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”意思是,“一个数除以3余2,除以5余3,除以7余2.求适合这个条件的最小数。”
  这个问题称为“孙子问题”.关于孙子问题的一般解法,国际上称为“中国剩余定理”.
  我国古代学者早就研究过这个问题。例如我国明朝数学家程大位在他著的《算法统宗》(1593年)中就用四句很通俗的口诀暗示了此题的解法:
  三人同行七十稀,五树梅花甘一枝,七子团圆正半月,除百零五便得知。
  "正半月"暗指15。"除百零五"的原意是,当所得的数比105大时,就105、105地往下减,使之小于105;这相当于用105去除,求出余数。
  这四句口诀暗示的意思是:当除数分别是3、5、7时,用70乘以用3除的余数,用21乘以用5除的余数,用15乘以用7除的余数,然后把这三个乘积相加。加得的结果如果比105大,就除以105,所得的余数就是满足题目要求的最小正整数解。
  根据剩余定理,我把此种解法推广到有n(n为自然数)个除数对应n个余数,求最小被除数的情况。输入n个除数(除数不能互相整除)和对应的余数,计算机将输出最小被除数。
  C++实现功能函数:  

  1. /*  
  2.  函数名:ResidueTheorem  
  3.  函数功能:运用剩余定理,解决推广了的孙子问题。通过给定n个除数(除数不能互相整除)和对应的余数,返回最小被除数  
  4.  输入值:unsigned int devisor[],存储了n个除数的数组  
  5.  unsigned int remainder[],存储了n个余数的数组  
  6.  int length,数组的长度  
  7.  返回值:unsigned int, 最小被除数  
  8.  */   
  9.  unsigned int ResidueTheorem(const unsigned int devisor[], const unsigned int remainder[], int length)   
  10.  {   
  11.  unsigned int product = 1; //所有除数之乘积   
  12.  for (int i=0; i<length; i++)//计算所有除数之乘积   
  13.  {   
  14.  product *= devisor[i];   
  15.  }   
  16.  //公倍数数组,表示除该元素(除数)之外其他除数的公倍数   
  17.  unsigned int *commonMultiple = new unsigned int(length);   
  18.  for (int i=0; i<length; i++)//计算除该元素(除数)之外其他除数的公倍数   
  19.  {   
  20.  commonMultiple[i] = product / devisor[i];   
  21.  }   
  22.  unsigned int dividend = 0; //被除数,就是函数要返回的值   
  23.  for (int i=0; i<length; i++)//计算被除数,但此时得到的不是最小被除数   
  24.  {   
  25.  unsigned int tempMul = commonMultiple[i];   
  26.  //按照剩余理论计算合适的公倍数,使得tempMul % devisor[i] == 1   
  27.  while (tempMul % devisor[i] != 1)   
  28.  {   
  29.  tempMul += commonMultiple[i];   
  30.  }   
  31.  dividend += tempMul * remainder[i]; //用本除数得到的余数乘以其他除数的公倍数   
  32.  }   
  33.  delete []commonMultiple;   
  34.  return (dividend % product); //返回最小被除数   
  35.  }   

6. 凯撒密码
  凯撒密码(caeser)是罗马扩张时期朱利斯o凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。
  它将字母表中的字母移动一定位置而实现加密。注意26个字母循环使用,z的后面可以看成是a。
  例如,当密匙为k = 3,即向后移动3位时,若明文为”How are you!”,则密文为”Krz duh btx!”。
  凯撒密码的加密算法极其简单。其加密过程如下:
  在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(key1,m)(其中key1为密钥),
  解密变换记为D(key2,m)(key2为解密密钥)(在这里key1=key2,不妨记为key)。
  凯撒密码的加密过程可记为如下一个变换:c≡m+key (mod n) (其中n为基本字符个数)
  同样,解密过程可表示为:m≡c+key (mod n) (其中n为基本字符个数)
  C++实现功能函数:   

  1. /*  
  2.   函数功能:使用凯撒密码原理,对明文进行加密,返回密文 函数名:Encrypt  
  3.   输入值:const char proclaimedInWriting[],存储了明文的字符串  
  4.   char cryptograph[],用来存储密文的字符串  
  5.   int keyey,加密密匙,正数表示后移,负数表示前移  
  6.   返回值:无返回值,但是要将新的密文字符串返回  
  7.   */   
  8.   void Encrypt(const char proclaimedInWriting[], char cryptograph[], int key)   
  9.   {   
  10.   const int NUM = 26; //字母个数   
  11.   int len = strlen(proclaimedInWriting);   
  12.   for (int i=0; i<len; i++)   
  13.   {   
  14.   if (proclaimedInWriting[i] >= 'a' && proclaimedInWriting[i] <= 'z')   
  15.   {//明码是大写字母,则密码也为大写字母   
  16.   cryptograph[i] = (proclaimedInWriting[i] - 'a' + key) % NUM + 'a';   
  17.   }   
  18.   else if (proclaimedInWriting[i] >= 'A' && proclaimedInWriting[i] <= 'Z')   
  19.   {//明码是小写字母,则密码也为小写字母   
  20.   cryptograph[i] = (proclaimedInWriting[i] - 'A' + key) % NUM + 'A';   
  21.   }   
  22.   else   
  23.   {//明码不是字母,则密码与明码相同   
  24.   cryptograph[i] = proclaimedInWriting[i];   
  25.   }   
  26.   }   
  27.   cryptograph[len] = '\0';   
  28.   }   
  29.   /*  
  30.   函数功能:使用凯撒密码原理,对密文进行解密,返回明文 函数名:Decode  
  31.   输入值:char proclaimedInWriting[],用来存储明文的字符串  
  32.   const char cryptograph[],存储了密文的字符串  
  33.   int keyey,解密密匙,正数表示前移,负数表示后移(与加密相反)  
  34.   返回值:无返回值,但是要将新的明文字符串返回  
  35.   */   
  36.   void Decode(const char cryptograph[], char proclaimedInWriting[], int key)   
  37.   {   
  38.   const int NUM = 26; //字母个数   
  39.   int len = strlen(cryptograph);   
  40.   for (int i=0; i<len; i++)   
  41.   {   
  42.   if (cryptograph[i] >= 'a' && cryptograph[i] <= 'z')   
  43.   {//密码是大写字母,则明码也为大写字母,为防止出现负数,转换时要加个NUM   
  44.   proclaimedInWriting[i] = (cryptograph[i] - 'a' - key + NUM) % NUM + 'a';   
  45.   }   
  46.   else if (cryptograph[i] >= 'A' && cryptograph[i] <= 'Z')   
  47.   {//密码是小写字母,则明码也为小写字母   
  48.   proclaimedInWriting[i] = (cryptograph[i] - 'A' - key + NUM) % NUM + 'A';   
  49.   }   
  50.   else   
  51.   {//密码不是字母,则明码与明密相同   
  52.   proclaimedInWriting[i] = cryptograph[i];   
  53.   }   
  54.   }   
  55.   proclaimedInWriting[len] = '\0';   
  56.   }  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模运算 的相关文章

  • 最小熵原理

    种草很好的博文 苏剑林 2018 Apr 18 最小熵原理 一 无监督学习的原理 Blog post Retrieved from https spaces ac cn archives 5448 苏剑林 2018 Apr 24 最小熵原理
  • 差分与微分

    差分与微分 差分和微分都是数学中的一些基本概念 它们在数学 物理学 经济学和其他领域中都有广泛的应用 1 差分 差分可以理解为函数值之间的差别 特别地 如果一个函数 f f f 在两个相邻点 x 0
  • [人工智能-数学基础-1]:深度学习中的数学地图:计算机、数学、数值计算、数值分析、数值计算、微分、积分、概率、统计.....

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 119710145 目录 1 为
  • LeetCode-1780. 判断一个数字是否可以表示成三的幂的和【数学】

    LeetCode 1780 判断一个数字是否可以表示成三的幂的和 数学 题目描述 解题思路一 将n转为3进制 如果没有2出现那么返回true 例如12 110 3 返回true 21 210 3 返回false 解题思路二 0 解题思路三
  • 离散数学——成真赋值与成假赋值

    今天复习离散数学的时候饱受一个问题的困扰 为什么主析取范式和主合取范式的小项和大项采用不一样的赋值方式 查阅一些资料后得出答案 在这里分享给大家 首先给大家明确一下赋值 成真赋值 成假赋值的概念 对于一个命题公式P中的所有命题变项指定一组真
  • 线性相关与线性无关的定义与性质

    定义1 线性相关 K n K n K nK n Kn Kn 中向量组
  • games103 物理模拟第三节笔记补充

    矩阵求逆直接法 1 LU分解 2 LDLT分解法 3 Cholesky分解 4 QR分解 5 SVD分解 6 Jordan分解 关于LU分解 LU分解的矩阵稀疏性与矩阵A的排列顺序有关 在这个领域 matlab提供了一套较好的解决方案 LU
  • 如何用硬币模拟1/3的概率,以及任意概率?

    突然想起一个挺有意思的事 如何用硬币模拟1 3的概率 甚至任意概率 之前和朋友偶然间谈到如何用硬币模拟任何概率 当时以为是不可能的 因为硬币有两面 模拟的结果底数一定是2 n 今天又回顾了某个经典的条件概率问题 突然想到用硬币模拟任意概率是
  • 基础算法题——炎炎消防队(取巧、三分)

    炎炎夏日 题目描述 夏天的重庆格外地炎热 很容易起火 消防士们都全副武装 一旦发生险情就立马赶往救火 森罗是消防队中的一员 他在灭火的过程中突发奇想 如果能用退火的原理求解函数求最小值 那不就可以很容易计算了吗 翌日 森罗来到即将高考的弟弟
  • 两直线垂直,斜率乘积为-1的证明

    老早以前在学习初等函数的时候 线性函数中的两直线y m0x b0 y m1x b1如果垂直 则有结论两条直线的斜率乘积为 1即m0 m1 1 以前也只是拿来用 没有证明过 最近在学图形学的时候 突然想起了这个点 因此记一篇笔记 证明一下 如
  • 拉格朗日插值

    直接上公式 简单的讲 这个玩意就是在给你若干个 f xi yi 的结果 算出f k 的结果 最朴素的实现方法 验证下这个公式的结果 include
  • 牛顿迭代法原理讲解

    牛顿迭代法原理讲解 牛顿迭代法是用于求解等式方程的一种方法 类似于求解F x 0的根 牛顿迭代法求解的是近似根 这个想法准确来说来源于泰勒展开式 我们知道 有些时候 我们需要求解的表达式可能非常复杂 通过一般的方法 我们很难求出它的解 所以
  • hdu 5792 World is Exploding 2016 Multi-University 5

    Problem acm hdu edu cn showproblem php pid 5792 题意 给一个序列 V 问有多少个由下标组成的四元组 a b c d 满足 a b c d a lt b c lt d Va lt Vb Vc g
  • 奇异值分解方法求解最小二乘问题的原理

    文章目录 一 奇异值分解 SVD 原理 1 1 回顾特征值和特征向量 1 2 SVD的定义 1 3 求出SVD分解后的U V矩阵 1 4 SVD计算举例 1 5 SVD的一些性质 二 线性最小二乘问题 2 1 最小二乘问题复习 2 2 奇异
  • 【华为OD机试真题 python】二进制差异数【2022 Q4

    前言 华为OD笔试真题 python 本专栏包含华为OD机试真题 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 题目仅供参考 千万不要照抄 题目描述 二进制差异数 对
  • 三角函数常见基本公式

    定义式 图形 正弦 sin 余弦 cos 正切 tan或tg 余切 cot或ctg 正割 sec 余割 csc 函数关系 商数关系 倒数关系 平方关系 和差角公式 二角和差公式 三角和公式 积化和差公式 倍角公式 二倍角公式 三倍角公式 四
  • (邱维声)高等代数课程笔记:极大线性无关组,向量组的秩

    极大线性无关组 向量组的秩 quad 一般地 设 V V V 是数域 K K K 上的一个线性空间
  • 防止sigmoid和tanh激活函数溢出的C++实现

    引言 上一期 我们介绍了softmax函数的C 实现 但是考虑到sigmoid和tanh函数也是带 e e e的次幂 所以现在我们来考虑该函数的防止溢出实现 sigmoid函数 原理 该函数的公式为 1 1
  • 树状数组理论与实现

    理论 http www cnblogs com zhangshu archive 2011 08 16 2141396 html 今天听了大神的讲课 了解了点东西 发现是之前学过的 于是试着再写一遍 include
  • 完美数

    按照毕达哥拉斯的说法 数的完满取决于它的真因数 即除了自身以外的约数 例如 12的因数是 1 2 3 4 和 6 当一个数的各因数之和大于该数本身时 该数称为 盈 数 于是 12 是一个盈数 因为它的因数加起来等于 16 另一方面 当一个数

随机推荐

  • tensorflow运行在gpu还是cpu

    tensorflow在电脑的gpu和cpu上均可运行 cpu 0 机器的 CPU device GPU 0 机器的 GPU 如果有一个 device GPU 1 机器的第二个 GPU 以此类推 当想要知道指令和张量在哪个设备上运行时 可以这
  • QT CREATOR 插件开发:添加新的工程类型

    Qt Creator 中 新的工程类型将出现在 文件 gt 新建 菜单项中 我们可以通过打开的选择工程类型的对话框来找到所需要的工程 在本章中 我们将学习如何向上面所示的对话框中添加新的工程类型 Core IWizard接口 Qt Crea
  • OA 第四天笔记

    权限 控制功能的使用 Web应用中的权限 每个功能都有相应URL地址 对功能的控制就是对URL地址的访问控制 权限方案 用户 角色 role 权限 与权限相关的功能具体有哪些 初始化数据 分配权限 使用权限 insert into 1 权限
  • 用Python怎么多赚钱?6种办法用上 让你过上挣钱的好日子

    编程语言Python特别火 火到几乎所有的程序开发公司都要求自己的员工掌握它 可以说 不懂Python的码农们在整个IT行业是无法想象的 不仅如此 Python除了在编程方面应用广泛 而且还能在业余时间变现 让拥有这方面技能的人员获得丰厚的
  • asp二进制mysql_asp 二进制保存数据库

    C 将image中的显示的图片转换成二进制 原文 C 将image中的显示的图片转换成二进制 1 将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是 二进制数据 因此必须将图像文件转换成字节数组才能存入数据库中 V
  • Anaconda: Linux下安装Anaconda

    一 说明 1 Linux CentOS7 2 Anaconda Anaconda3 2018 12 Linux x86 64 3 这只是个人的记录 最终以官网安装步骤为准 见参考资料链接 二 安装步骤 1 软件下载 进入到anaconda官
  • 利用插值算法进行上采样和下采样

    1 最邻近插值 The nearest interpolation 原理 划分四个区域 将某点值赋给区域的所有值 def the nearest interpolation img nh nw h w c img shape h是heigh
  • Java 文字转图片输出,Java 输出透明背景图片,Java文字转图片防爬虫

    近部分页面数据被爬虫疯狂的使用 主要就是采用动态代理IP爬取数据 主要是不控制频率 这个最恶心 因为对方是采用动态代理的方式 所以没什么特别好的防止方式 具体防止抓取数据方案大全 下篇博客我会做一些讲解 本篇也是防爬虫的一个方案 就是部分核
  • Bug处理之ImportError: cannot import name 'HTMLParseError

    操作系统Windows10 0 PythonIDE Pycharm2018 02 Python版本 python3 6 anaconda平台 Packages bs4 beautifulsoup4 问题描述 error ImportErro
  • springboot 查看各种依赖的版本(idea工具):

    说明 跟踪 ctrl mouse left
  • CopyTranslator 翻译神器的安装与使用

    download https github com copytranslator copytranslator releases guide https copytranslator github io guide 问题 第一次安装后就会默
  • macbook打印出现乱码解决方案

    macbook打印出现乱码解决方案 参考文章 1 macbook打印出现乱码解决方案 2 https www cnblogs com wenluren p 11325669 html 3 https www javazxz com thre
  • ddos攻击详解

    分布式拒绝服务攻击 DDoS 攻击 是一种网络攻击 旨在通过向目标系统发送大量的流量或请求 以使其无法正常运行或响应合法用户的请求 这种攻击通常涉及多台被感染的计算机 这些计算机被称为 僵尸 或 肉鸡 并被攻击者控制 以协同发动攻击 DDo
  • 03-java数据结构之链表的学习(单链表、双链表等)

    文章目录 1 链表 1 1 链表的介绍 2 单链表 2 1 单链表的显示 2 2 单链表的添加操作 2 2 1 直接添加到链表的尾部 2 2 2 根据no插入到指定位置 2 3 单链表节点的修改 2 4 单链表节点的删除 3 双向链表 3
  • 大数据从入门到精通(超详细版)之Hadoop详解

    前言 嗨 各位小伙伴 恭喜大家学习到这里 不知道关于大数据前面的知识遗忘程度怎么样了 又或者是对大数据后面的知识是否感兴趣 本文是 大数据从入门到精通 超详细版 的一部分 小伙伴们如果对此感谢兴趣的话 推荐大家按照大数据学习路径开始学习哦
  • Ubuntu 16.04下deb包的安装及常用命令

    如果ubuntu要安装新软件 已有deb安装包 例如 iptux deb 但是无法登录到桌面环境 那该怎么安装 答案是 使用dpkg命令 dpkg命令常用格式如下 sudo dpkg I iptux deb 查看iptux deb软件包的详
  • 数据对象总结

    JavaScript对象 对象属于一种复合的数据类型 在对象中可以存储多个不同数据类型的属性 JavaScript 中的所有事物都是对象 字符串 数值 数组 函数 此外 JavaScript 还允许自定义对象 JavaScript 提供多个
  • C++函数调用那些事

    C 函数调用 C 形参带默认值的函数 带默认值的形参必须从右往左给 给出以下实例 int sum int x int y 无默认值函数 int sum int x int y 0 y有默认值 int sum int x 0 int y 0
  • c#初级

    类 创建一个类 public class A 访问修饰符 public公有 protected 受保护的 private私有的 public 在类内和类外都可以使用 public int a 定义一个字段a protected 他只能在类内
  • 模运算

    http blog csdn net ld326 article details 7880429 模运算即求余运算 模 是 Mod 的音译 模运算多应用于程序编写中 Mod的含义为求余 模运算在数论和程序设计中都有着广泛的应用 从奇偶数的判