你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
zkbhj - 凯冰科技站长
赞同来自:
取模运算(“Modulus Operation”)和取余运算(“Remainder Operation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。
余数指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数。 例如:27除以6,商数为4,余数为3。
一个整数除以另一个不为零的整数,得到整数商后还有余数,这样的除法叫做“带余除法”。
当a÷b不能得到整数商时,如果a最多包含q个b,也就是说,a大于qb而小于(q+l)b,即当qb时,那么这个整数q叫做不完全商,而a与qb的差叫做余数。
double fmod(double x, double y) x -- 代表分子的浮点值。 y -- 代表分母的浮点值。 该函数返回 x/y 的余数。 9.200000 / 2 的余数是 1.200000 9.200000 / 3.700000 的余数是 1.800000
要回复问题请先登录或注册
凯冰科技站长
1 个回复
zkbhj - 凯冰科技站长
赞同来自:
所以取模,其实和取余基本上雷同,只是负整数运算时操作不同。所以,再看下余数的数学定义:
带余除法的定义:
看来,“带余除法”是定义在自然数集上的一种运算。只要除数不为零,不完全商和余数都存在,并且都是唯一的。
所以,%取模运算规定,两边的操作数据必须为整数,不能是float或者是double类型。
但是,真的就没有小数计算余数的概念吗?答案是有的。那就需要看一下“不完全商”的概念了!
所以如果能够厘清不完全商和带余除法这两个概念的定义范围,这个难题就可以迎刃而解。从上述内容可以看出,不完全商和带余除法是分别定义在不同集合上的两个概念。带余除法是在数论中作的定义,仅限于自然数范围;而不完全商是在有理数范围内作的定义,在这个定义域之内,除不完全商为整数、除数不为0外,被除数、除数和余数还可为小数。
因此,在研究小数除法是否有余数这一问题时,如果不考虑数的范围,简单地给一个“有”或“无”的结论都是不够严密和科学的。我们可以通过两个角度来理解小数除法中的余数。一,按不完全商定义来理解,余数可以为小数;二,因为计算除数是小数的除法时,先要将除数转化成整数进行计算,因此,我们还可以理解为小数除法借用了整数带余除法中余数的概念。在利用商不变规律把小数除法转化成整数除法进行计算时,不完全商不变,但余数要和除数同时扩大相同的倍数。因此,要得到原来的余数,还要缩小相同的倍数。
C语言中也提供了针对非整数类型的取模计算的库函数:fmode(x,y),位于math.h标准头文件中。
以上内容参考了张维国发表于2012年《小学数学参考》数学版第三期的论文内容。
论文地址:http://www.cnki.com.cn/Article ... 1.htm