摘要:
数学的作用是减少环节,简化计算。如1+1+1 = 1*3从信息学角度,就是压缩冗余的信息。程序开发也是类似的原理,有很多环节可以进行压缩,比如循环可以压缩重复的字句,函数可以压缩重复的算法。既然如此,那么一个问题,必然有经过压缩和没有经过压缩的程序表示形式,优秀的程序应该是精简的。但是,一个问题也必然有其无法压缩的复杂性,就如永远无法压缩一个非0字节的文件到0字节.借助这些特征,属性,我们可以看清程序和数学之间的一些关系。数学是一套系统的压缩理论,把有着重复结构的初级表示形式,转化为高度统一的高层表示形式。程序员可以借助数学工具,对具体问题的解进行优化,得到简化后的程序代码。但是,数学这套工具 阅读全文
搜索
积分与排名
- 积分 - 308563
- 排名 - 3168
随笔分类 (315)
最新评论
- 1. Re:为什么0.1无法被二进制小数精确表示?
- @诺贝尔 感谢回复!你的思路给了我一些启发...
- --safoie
- 2. Re:为什么0.1无法被二进制小数精确表示?
- @safoie 你好,确实是我数错了,是5位。...
- --诺贝尔
- 3. Re:为什么0.1无法被二进制小数精确表示?
- 您好,感谢您的补充,根据我的理解,1右移一位等于1×2=2;右移两位等于1×(2的平方) =4;右移三位等于1×(2的三次方)=8;右移四位等于1×(2的四次方)=16,右移五位的话才等于1×(2的五...
- --safoie
- 4. Re:为什么0.1无法被二进制小数精确表示?
- @safoie 你好,这里的算法表现力不足,因为没有采用数学符号。 这里面用的就是辗转相除法。1/20,被除数向右移动一位,等于1*2,4位等于32,比除数大,然后用32-20,剩余12。 它和普通的...
- --诺贝尔
- 5. Re:为什么0.1无法被二进制小数精确表示?
1* 2* 2* 2* 2 为啥等于32?右移四位是以什么为依据的呢?
- --safoie