关于C语言的得到整数除法结果向上取整的数学证明
2014-06-21 00:31
531 查看
说明:
程序除了可以枚举或猜测外,简单的数学证明更有说服力,下面是关于C语言的得到整数除法结果向上取整的数学证明:int x, n;
int
c=(x+n-1)/ n ; (0)
c为x除以n的向上取整结果。
已知:
对于常量n,任意正整数x可以表示为:x=an+c;(其中,a为整数,且0⩽a)
(1)
为了满足向上取整,需要限制c为:
1<c<n; (2)
类似,向下取整,则需要限制c为:
0<c<n−1;(对于向下取整,C语言正整数除法默认为就是这样子的)
证明:
为了使x/n向上取整,需要满足:(a+1)n<x+σ<(a+2)n;
根据条件(1)推出:
(a+1)n<an+c+σ<(a+2)n;
简化,
n-c<σ<2n-c; (3)
根据条件(2)推出:
0<n-c<n-1;n<2n-c<2n-1 (4)
由(3)(4)推出:
n-1<σ<n
结论:
σ取整数的话就只可以为n-1,故可以得出结论(0)成立。类推可以得到向下取整的σ=0;
相关文章推荐
- C语言正整数除法向上取整
- 关于C中除法向上取整的证明
- C语言正整数除法向上取整
- 关于python3.x的除法、向上向下取整及四舍五入的问题
- C语言除法向上、向下取整
- JAVA为什么有时候除法计算结果本来应该是小数。但是得到整数int类型
- JavaSE7基础 除法 两个int类型变量相除 得到结果(整数与小数)
- 关于C语言的除法运算的结果
- C语言除法向上、向下取整
- C语言除法向上、向下取整
- 关于split分割字符串,空结果不能得到的问题
- 关于split分割字符串,空结果不能得到的问题
- js Math 中数学函数用法 取整出 向上取整 向下取整
- 关于二分法中取中间值时向下和向上取整的问题(由大白LA3971想到的)
- 关于二分法中取中间值时向下和向上取整的问题(由大白LA3971想到的)
- java面试关于数学除法面试题两例
- 算法题: 求一个整数数组中,通过元素加减运算得到指定结果的所有运算过程. 例如【5,4,6,7,1】= 9 ?
- opencv 取整数,四舍五入,向上取整,向下取整
- 小数整理,向上取整,向下去整,四舍五入,丢弃小数部分,保留整数部分
- PHP数学运算: 向上/向下取整及四舍五入