截断除法和欧几里得除法
Euclidean division 的中文意思是 欧几里得除法。
定义与解释:
欧几里得除法是一种数学上的整数除法方法,它将整数之间的除法结果表示为商和余数的形式。具体来说,对于任意两个整数 a 和 b(其中 b ≠ 0),欧几里得除法可以表示为:
a=b⋅q+ra = b \cdot q + ra=b⋅q+r
a 是被除数(Dividend)。
b 是除数(Divisor)。
q 是商(Quotient),是整数。
r 是余数(Remainder),满足 0≤r<∣b∣0 \leq r < |b|0≤r<∣b∣。
中文解释:
欧几里得除法 是一种整数除法方法,强调将结果分解为整数商和一个非负余数。
例如:
17÷517 \div 517÷5:
17=5×3+217 = 5 \times 3 + 217=5×3+2,其中商 q=3q = 3q=3,余数 r=2r = 2r=2。−17÷5-17 \div 5−17÷5:
−17=5×(−4)+3-17 = 5 \times (-4) + 3−17=5×(−4)+3,其中商 q=−4q = -4q=−4,余数 r=3r = 3r=3。
应用场景:
欧几里得除法在许多数学和计算领域都有应用,例如:
求最大公约数(GCD):使用欧几里得算法。
模运算(Modulus):余数 rrr 是模运算的结果。
编程语言中的整数除法,如 Python 的
divmod()函数。
总结:
Euclidean division 的中文是 欧几里得除法,是一种将整数除法结果分为商和余数的数学方法。
Truncated division (towards zero) 和 Euclidean division 是两种不同的整数除法方式,主要区别在于它们如何处理商的取整方向,尤其是在处理负数时。
Truncated Division (towards zero) 的含义
Truncated division(截断除法)是指商的计算总是向 零方向 取整(即直接截断小数部分)。
中文可以翻译为 截断除法 或 向零取整的除法。
关键点:无论被除数是正数还是负数,结果的商总是向零靠拢。
公式表达:
对于任意整数 a 和 b(b ≠ 0),截断除法满足:
a=b⋅q+ra = b \cdot q + ra=b⋅q+r
其中:
商 q=truncated(a/b)q = \text{truncated}(a / b)q=truncated(a/b),即 qqq 是向零取整的商。
余数 r=a−b⋅qr = a - b \cdot qr=a−b⋅q,满足 ∣r∣<∣b∣|r| < |b|∣r∣<∣b∣。
与 Euclidean Division 的区别
商的取整方向:
Euclidean division:商 qqq 是向下取整(向负无穷方向)。
Truncated division:商 qqq 是向零取整(直接截断小数部分)。
余数的符号:
Euclidean division:余数 rrr 总是非负的(0≤r<∣b∣0 \leq r < |b|0≤r<∣b∣)。
Truncated division:余数 rrr 的符号与被除数 aaa 相同。
示例比较:
被除数 aaa | 除数 bbb | 截断除法(towards zero) | 欧几里得除法 |
|---|---|---|---|
7÷3 | 3 | 商 q=2, 余数 r=1 | 商 q=2, 余数 r=1 |
−7÷3- | 3 | 商 q=−2, 余数 r=−1 | 商 q=−3, 余数 r=2 |
7÷−3 | −3 | 商 q=−2, 余数 r=1 | 商 q=−3, 余数 r=−2 |
−7÷−3 | −3 | 商 q=2, 余数 r=−1 | 商 q=2, 余数 r=1 |
Truncated Division 的用途
截断除法在许多编程语言和计算环境中是默认的整数除法行为。例如:
Python:
使用
//运算符时,默认是 截断除法。python
Run
print(-7 // 3) # Output: -2
C/C++:
整数相除时默认行为是截断除法。
c
int q = -7 / 3; // q = -2
Java:
也是默认执行截断除法。
总结
Truncated division (towards zero) 的核心是商向零取整,余数的符号与被除数一致。
与 Euclidean division 的主要区别是商的取整方向和余数的符号。
截断除法是许多编程语言中整数除法的默认行为,适合计算机环境中的简单除法逻辑。
暂无评论,欢迎留下第一条评论。