听到赵宏图说这三种编程思想,雷布斯点点头。
他也是这么觉得。
赵宏图看了看,公司的人,比当初在学校的学生,听课可要认真多了。
可赵宏图知道,这里边大部分人,是听不懂自己在说什么。
有些人连电脑键盘上的按键都还不熟悉呢,就来听编程思想。
有点太为难人了。
不过,不管听不听得懂,至少这个态度,是非常端正的。
赵宏图点点头,继续说道,「我给大家出一个题目吧,把大象装进冰箱里,该怎么做?」
雷布斯的大脑,立马像电脑CPU一样高速运算。
亚洲象肩高3.7至4.1米,体重3至5吨。
非洲象肩高4.3至4.5米,体重5.5至8吨。
非洲森林象平均肩高不超过2.7米,体重3.5吨。
家用电冰箱的容积通常为20~500升。
要想把大象装进冰箱里,这根本就不可能。
可赵宏图给大家出这个题目。
那肯定不可能说没有答案。
赵宏图没有说是几個冰箱,难道?
不行,不行,这样肯定不合适。
或许可以发散一下思维。
是不是可以用数学方法来解答这个问题?
学霸的思维,就是和一般人不一样。@
没多大一会,雷布斯就举起手,「赵总,是不是可以用数值计算方法:1.把大象的尾巴放进去,剩余部分当作余项处理。2.用最快的Pentiu决这个问题。」
张大山本来还在苦苦琢磨解题思路,然后被雷布斯给启发了。
你用数值计算方法,我可以用线性代数方法啊。
数学就是万能的。
「赵总,通过线性代数方法可以这样来解决,1.把大象的基先放进去,再在冰箱里张成空间。
2.把大象作奇异值分解,去掉大于冰箱维数所对应的特征值,由剩余特征向量即可恢复出一只可以放进冰箱之中的大象。」
在座的被赵宏图这个问题,问得一脸懵。
然后听到学霸的解答,更是一头雾水。
每个词好像都听得懂。
但组合到一块,那是说的什么意思?
我是谁?
我在哪里?
我是在干什么?
他们都怀疑自己是不是真实的存在。
赵宏图这个出题人,都被雷布斯和张大山给弄得一脸懵。
这题目还可以用数学来解答么?
自认为数学学得很好的赵宏图,这时候都怀疑自己两辈子的数学,是不是没有学到家。
可是,这里还有一个数学专业毕业的。
鲍越桥一看两个非数学专业出身的,在自己面前秀数学,不能忍啊。
他举手,经得赵宏图同意后,走到黑板前,边说边写:
「赵总,我这有三种方法,一种是利用代数拓扑方法:把冰箱内部用它的包R^3替代。(补充,或证明PI1(冰箱)=0);
第二种方法,可以用集合论方法:
1.冰箱={大象}
2.大象和冰箱的内部有相同的。
第三种方法:分析学方法:
1.先把大象微分,然后把它放到冰箱里,再在冰箱里把它积分。
2.重新定义冰箱或者大象的测度(如Radon测度)。
3.用Banh-Tarski定理。」
王将民感觉自愧不如。
看来职工业务大学和真正的大学还是有很大的区别。
当初自己就应该参加高考,改变一下自己的命运。
姜伟民也觉得自己的知识储备有点不够用了。
自己这65年毕业的大学生,和80年代毕业的大学生,真是不能比。
几吨重的大象,硬是被他们用数学方法给装进了几百升冰箱里边去了。
关键是你还没法反驳。
科技信息中心还有不少大学生,这时候也觉得,赵宏图给这些人,一年几十万。
那确实是有道理的。
这么困难的问题,都能有办法给你解决了。
赵宏图看着面前的这几个人,这真是自己公司需要的人才么。
怎么感觉要是往前几百年,妥妥地一个个都是奸臣。
要是去势了,魏九千岁都甘拜下风。
勇敢地小刘这时候,又开始勇敢起来,「赵总,是不是只要三步,打开冰箱,把大象放进去,关上冰箱?」
赵宏图赞许地看了小刘一眼,这还是有明白人嘛。
赵宏图把黑板上那些高大上的东西,都给擦了。
「对,如果我们采用面向过程的思想,可以分为三步:
1.打开冰箱门
2.把大象塞进去
3.关上冰箱门
面向过程编程就是分析出解决问题所需要步骤,然后分别实现每一步,再一步步执行即可。」
王将民觉得这才对嘛,咱们是在听赵宏图讲编程思想,差点就被雷布斯给带到数学那不归路上去了。
计算机才是正道嘛。
雷布斯拍了一下自己的脑袋,自己是计算机方面的天才,刚才怎么没想到这个答案呢。
那用C语言该怎么解决呢?
「将大象编码成二进制文件,然后编译进冰箱的程序代码里。」
一不小心,把这个解决问题的方法,给嘀咕了出来。
王将民也被雷布斯给带歪了,「把大象放进冰箱会使冰箱的冷冻区溢出,这将导致攻击者获得冰箱的系统权限。」
这妥妥地一个计算机安全专家啊。
赵宏图感觉这课是上不下去了。
瞪了雷布斯一眼。
雷布斯很识相地闭上了嘴巴,其实如果给他一个电脑,他可以用FORTRAN把代码都给写出来。
赵宏图看了看大家,「刚才我讲的是采用面向过程的思想,那面向对象编程思想怎么做呢?
那就要先知道面向对象是什么?
搞清楚啥是对象?
对象是女朋友吗?在计算机的世界里,答案肯定不是。
任何我们想要探究的事物都可以当作一个对象,比如我们可以把你家的冰箱理解为一个对象,我们就可以研究你家冰箱由哪些部分(指令装置等)组成,你家冰箱能干什么(制冷、调温等)?」
雷布斯这时候,没有跳出来活跃气氛了。
赵宏图点点头,继续说道,「对象的行为其实是对其属性的操作,比如对制冷器操作就可以制冷,给灯带通电就可以照明。
对象=属性+行为。」
赵宏图开始在黑板上板书,「接着我们开始采用OOP的方法把大象装进冰箱
1.调用:冰箱->打开门(行为)
2.调用:冰箱->装东西(行为)
3.调用:冰箱->关闭门(行为)
看起来和面向过程没啥区别,但我们的思想发生了重大的转变,我们把冰箱当作了一个独立的对象,我们是通过和冰箱这个对象交互完成了整个过程。」
懂得自己听懂了。
不懂的怎么样也听不懂。
但他们把对象=属性+行为这个概念,算是给记住了。
说到这里,赵宏图把粉笔放在桌上,「小雷,还一个函数式思想,伱和大家讲讲呗。」
雷布斯很兴奋地走到台前,拿着粉笔,开始边写边说,「如果利用函数式编程,我们可以这么做:
1.定义关进(冰箱,大象)函数
2.实现函数:关门(放入(开门(冰箱),大象))
可以看到多层的函数嵌套调用,这就是函数编程的魅力……」
大家还只是听说过赵宏图上课很有意思,但有不少人还是第一次听赵宏图上课。
赵老师的课,确实很轻松快乐。
简简单单的一个小问题,就让大家了解了编程思想。
激发了大家对计算机世界的兴趣。
更加重要的是,这一堂课,也拉近了赵宏图和科技信息中心人员的距离。