第646章 赵氏课堂

听到赵宏图说这三种编程思想,雷布斯点点头。

他也是这么觉得。

赵宏图看了看,公司的人,比当初在学校的学生,听课可要认真多了。

可赵宏图知道,这里边大部分人,是听不懂自己在说什么。

有些人连电脑键盘上的按键都还不熟悉呢,就来听编程思想。

有点太为难人了。

不过,不管听不听得懂,至少这个态度,是非常端正的。

赵宏图点点头,继续说道,「我给大家出一个题目吧,把大象装进冰箱里,该怎么做?」

雷布斯的大脑,立马像电脑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.实现函数:关门(放入(开门(冰箱),大象))

可以看到多层的函数嵌套调用,这就是函数编程的魅力……」

大家还只是听说过赵宏图上课很有意思,但有不少人还是第一次听赵宏图上课。

赵老师的课,确实很轻松快乐。

简简单单的一个小问题,就让大家了解了编程思想。

激发了大家对计算机世界的兴趣。

更加重要的是,这一堂课,也拉近了赵宏图和科技信息中心人员的距离。