所谓取模运算,就是计算两个数相除之后的余数,符号是%。如a % b就是计算a除以b的余数。用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m,那么a % b = a - n * b = m.

取模运算的两个操作数都必须是整数,可以是负整数,但是b不可以是0,因为被除数不能为0嘛。

当a和b中存在负整数时,首先计算|a|%|b|=c,然后a%b的符号与b一致。也就是说,如果b>0,则a%b=c;如果b<0,则a%b=-c

比如:

好了,上面是以前我对取模运算的认识,我记得<<C++ Primer>>上也是这么写的。但是,在Python中,我随便输入了一个浮点数进行取模运算,竟然也是可以的,惊呆了==

不过呢,仔细观察就会发现,不知道它是怎么计算的啊!怎么办呢,我们首先来看看,浮点数的取模在数学上要怎么定义呢?

浮点数取模的数学定义:对于两个浮点数a和b,a % b = a - n * b,其中n为不超过a / b的最大整数。

例如,

3.5 / 2 = 1.75,取n = 1,则3.5 % 2 = 3.5 - 1 * 2 = 1.5

-3.5 / 2 = -1.75,取n = -2,则-3.5 % 2 = -3.5 - (-2) * 2 = 0.5

3.5 / -2.5 = -1.4,取n = -2,则3.5 % -2.5 = 3.5 - (-2) * (-2.5) = -1.5

另外,C++中有一个函数fmod可以用来计算浮点数的取模。

总结:

取模运算的两个操作数a和b可以是整数,也可以是浮点数;可以是正数,零(b不能为0),也可以是负数。不管是整数还是浮点数,是正数还是负数还是零,只需要抓住取模的数学定义即可。统一的数学定义如下:

对于两个数a和b(b不为0),a % b = a - n * b,其中n为不超过a / b的最大整数(这里的除就是正常的除,不是整除)。

需要注意的是,整数的取模运算的定义和浮点数的是一样的,所以计算方法也是一样的。最前面提供的整数取模的方法,其实本质上跟浮点数取模的方法是一致的,只不过这种方法可能在含有负整数的整数取模中比较方便而已。

Python中的取模运算相关推荐

  1. 取模是什么意思python_原来Python中的取模运算方法竟然是这样的!

    今天小编就为大家分享一篇Python中的取模运算方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b ...

  2. Python中的取模运算方法

    一个关于-10%3的小问题,python在运算 -10%3和 10%-3时的输出结果竟然是2和-2,但是我们自己手动运算的话结果难道不是 -1和1吗?所以记录一下吧! 在小学中关于余数的定义,在整数的 ...

  3. python取模运算_Python中的取模运算方法

    所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b的余数.用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m ...

  4. python中mod运算符_Python中的取模运算方法

    所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b的余数.用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m ...

  5. python np.mod() 取模运算

    python np.mod() 取模运算 取模运算并非算术运算中的取余运算%,看代码发现使用取余计算的结果一直都对不上,为了打破这个误区,手动计算探索其内部原因呀~ python np.mod()的取 ...

  6. Python中的取整运算

    Python中的取整运算 1.int()向下取整 1 n = 3.75 2 print(int(n)) >>>3 2.round() 四舍五入取整 1 n = 3.75 2 prin ...

  7. PHP中关于取模运算及符号

    执行程序段<?php  echo 8%(-2) ?>,输出结果是: %为取模运算,以上程序将输出0 $a%$b,其结果的正负取决于$a的符号. echo ((-8)%3);     //将 ...

  8. 取模是什么意思python_Python中的取模运算

    2000条你应知的WPF小姿势 基础篇&lt;22-27 WPF生命周期, 基础类等&gt; 端午长假在家陪着女朋友, 幸福感满满,生活对于一只饱经忧患的程序猿来说也是非常重要的,也就 ...

  9. python中的取余运算符是_python取余运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算 ...

最新文章

  1. Django 缓存6.2
  2. 程序员跳槽获25K月薪,只因他给面试官看了这6000行代码
  3. 20160208.CCPP体系具体解释(0018天)
  4. 漫谈面向对象基石之开闭原则(OCP)(转)
  5. 内存泄露从入门到精通三部曲之常见原因与用户实践
  6. fatjar打包mysql_一个简单的解压ZIP Excl文件---gt;按时间读取Excle文件,通过Fat jar打成jar相对应的添加到mysql数据库中。 - 明月 - ITeye博客...
  7. 下列标识中不是c语言保留字,下列标识符中,不是 C 语言保留字的是
  8. Ubuntu 开发环境搭建
  9. day1 java的规范以及变量与数据类型
  10. SAP License:SAP CWM功能及限制
  11. LINUX系统下监控DELL服务器硬盘状态
  12. C++并发编程(7):条件变量(conditional variable)、wait( )与notify_one( )、spurious wakeups(虚假唤醒)
  13. 做程序员,需要学习哪些专业知识?
  14. 使用微带线设计一个低通滤波器
  15. 【金猿产品展】智能媒体审校系统:内容安全生产的守护者
  16. Python视觉深度学习系列教程 第一卷 第21章 案例:使用CNN破解验证码
  17. 中南大学综合选拔2019计算机,中南大学计算机学院2019年硕士研究生复试情况汇总表...
  18. 手把手教你从0到1搭建vue3+ts+vite+element-plus简易后台管理系统
  19. 西门子1200程序与威纶通实例,设备已经运行生产,博图V15
  20. 64位 atol c linux_Linux_C函数参考

热门文章

  1. serialport串口通信
  2. KingbaseES人大金仓学习
  3. 代码规范及格式化工具(vscode、clang-format、git)
  4. java判断日期前后_Java丨时间判断谁前谁后
  5. 产品读书《高效能人士的七个习惯》
  6. EWM一个仓库号对应ERP多个PLANT的配置
  7. X11 - 999、运筹学基础、02375
  8. 冒险岛启动游戏提示计算机丢失,各种无法登陆情况解决建议汇总
  9. mysql也有dblink
  10. python中open()函数里中文处理