首页 > 其他 > 详细

编程趣谈

时间:2014-02-27 00:21:21      阅读:446      评论:0      收藏:0      [点我收藏+]

作者:flyfish 2014-2-25

维数

二维的世界

设想在桌面一张极大的纸上,上面有,三角形、四边形、五边形等等包括其他图形;它们能在纸面上自由移动,只是不能离开纸面做上下运动。一个三角形在纸上,从上看能看出它是三角形,然后到桌边,视线与纸平行看,能看到的只有线。二维世界的图形们,它们看对方看到的只有线。

一个小球在这张纸上滚动,突然掉地上了。这些二维世界的图形们它得出的结论就会是:小球已经不存在了。三维世界的人能看见小球还在了,只是掉在地上了。

1如何让二维世界的图形们感受到三维世界的存在?

2关系数据库的通常用二维表结构来描述事物和事物之间的联系。二维的思维可以表达出这个的世界吗?

3数组由类型名,标识符和维数组成的复合类型(Compoundtype),计算机只要空间无限大,是否可以表现出无限维的数组呢?

4我们的宇宙到底是多少维的?并不是所有的知识来自于我们的感官,因为人的视觉受限,人如何理解第三维之外呢?不识庐山真面目,只缘身在此山中。

 

不高效的Virtual,不是真实的,但被真实地使用着

1 Virtual Function虚函数不高效为什么还需要它呢?

在C++发源地贝尔实验室中,有大量的C程序员,最初发明C++的原因是让C程序员更高效率的工作。虚函数是可选的。如果不想让程序拥有一点的额外的开销,那就不用。在设计类时,不应该担心程序效率问题,在恰当好处时想用就用。在程序设计完成之后,如果要改进程序运行效率,那么就可以去掉可以不使用虚函数的函数。

抽象是为了易于理解,代码最重要的是要让人理解,而不是让机器理解。C++语言设计的目的是解决实际问题,要求实用,他不是追求最理想的抽象。

需要,而不过度使用。

MFC框架不是一蹴而就做成的,它不是一个抽象度很高的框架,抽象度过高容易损失性能,微软在抽象和性能之间做一个平衡。写代码是一件很具体的事,而编程方法很抽象。最难的事情是对尺度的把握,很多事情都在把握一个度,寻求某种平衡。

 

2面向对象的编程语言通常会引用生物学的进化论来说明,例如简单的继承关系,C++语言里面有个多重继承,而多重继承产生的菱形继承就像近亲结婚,编译器这关是通不过的。

而Java就不支持多重继承,Java为什么不支持多重继承呢?

答案是This is a design decision taken by the creators of java. The keywordis simplicity and rare use。

C++还要需要用Virtual解决这菱形继承问题。

 

3虚数

虚数(imaginary number)在数学中不是真实的数字,但被真实地使用。Imaginary这个词

源于笛卡尔用来辨识方式的非普通数的解。因为我们知道i=  ,从表示虚数的单词得知虚数是前人想象中的一个数,这想象中的一个数,它是什么我们不知道,但我们相信它的存在。计算器中为什么是无效输入呢?

 

 

不存在也是一种存在的0

1 二进制系统是现代计算机的基础,在计算机中所有的事物都可以用0和1表示,代价就是0和1的序列会非常的长。罗马数字系统里面没有0,如果用罗马数字系统来构建计算机呢?

2如何以非算术规则来理解0呢?

1除以 1/10 =10

1除以 1/100 =100

1除以 1/1000 =1000

1除以 1/10000 =10000

1除以 1/100000 =100000

 

那么1 除以 0 结果是接近无穷大

 

如果 0 ÷1=0的方式处理 1 ÷ 0 =x, 以分数形式交叉相乘,结果是毫无意义的 0=1,

允许 1 ÷0的存在就是个灾难。

假设 0 ÷ 0=x,交叉相乘 x等于任何数,那么如果计算机处理0÷ 0那么就rand随机产生一个数字给用户,但这种情况是不会放生的,此处无论哪个程序员都会排除0作为除数的情况。

2 一个存储介质首先是处于空的状态,之后里面存储了0和1的状态,这样文件就被创造了出来,读出0和1的状态,通过0和1个数及排列,我们人为地为这个文件的赋上了意义,文件传输时,只需要得到这个文件的0和1的序列。

好似道生一,一生二,二生三,三生万物。从简单开始,慢慢开始复杂,最后追求原始的简单状态。

 

西方的Object与中国的对象,面向对象很流行

god-made Objects and Man-made Objects

Object这个单词大陆翻译成对象,台湾翻译成物件

In the beginning God created the heaven andthe earth

一切都是对象

造这个字的由来 土+撇+口+走之旁

Creat=Dust/Mud+Alive+Mouth+Walking

Man was created from the dust of theground.

中国的神话是女娲用泥土造人。西方也是用泥土造人。本的东西总是相同的。

每个Object都是不同的,就像世界上没有一模一样的两片叶子。每个OBject都会有自己与众不同的东西,为其他OBject提供服务。

编程趣谈,布布扣,bubuko.com

编程趣谈

原文:http://blog.csdn.net/flyfish1986/article/details/19932525

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!