思路

2024-03-16  本文已影响0人  zzyy2222

这几天都在学习算法课程,突然打开了一些思路。

一、算法的特征

什么是算法?

算法就是有输入、有输出的解决问题的计算步骤。

我们一个例子,王婆特别会挑好吃的瓜,赵婆想跟王婆取取经,王婆就告诉赵婆三要素,第一颜色是深绿色,第二是重量更沉,第三是敲击的时候有清脆的声音。赵婆学会之后果然挑到了又大又甜的西瓜。作为算法工程师的你,如果想根据王婆的三要素完成一个自动挑瓜程序能不能完成呢?

我们发现挑瓜虽然是有输入有输出的解决问题的过程,但并能不能实现。深绿色翠绿色到底是什么程度?更沉究竟是多重?清脆声音是什么状态。对这种模糊的定义,人可以做事,但是机器不可以。可见算法对确定性有着极为严苛的要求。

总结算法的特征包含确定性、可执行性、有穷性,包含输入和输出。计算机程序能够执行必须是可执行和有穷的。

我们进行一个评价练习,同学们观看手中导学案上的两个菜谱,一个是拌黄瓜,另一个是烤蛋糕,请作为算法科学家的你分析一下,它们是不是算法。

拌黄瓜:1黄瓜若干根切块2加入蒜末少许3加入酱油少许3加入盐少许

烤蛋糕:烤蛋糕要输入15克黄油,30克面粉,要放进200度烤箱,烤20分钟。

其实两者都是算法,为什么拌黄瓜的输入条件是少许这种模糊概念也是算法呢?是因为我们想要的是一道拍黄瓜的菜,确定性是指输入的食材是确定的,有了这些食材一定能做出来一道菜。

而烤蛋糕的确定性是各种精确的数据,按照这个流程,不管是谁烤都能够输出相同的结果。同时还能够对这一过程进行算法优化,做出口感最好的蛋糕。

这就好比最好的中餐馆只能一枝独秀,因为优秀的大厨只有一位,而西餐肯德基麦当劳却能够进行连锁复制,也是同样的道理。

二、算法解决问题的步骤

分析问题-建立模型-选择算法

现实问题是没办法直接交给计算机的, 我们需要一个数学模型来与计算机建立“桥梁” ,可以说,建立模型的过程,也是把现实问题转化成算法问题的过程。

老师去北海药学院去学习,发现一个叫的“小蛮驴”智能小车,我们来看看它能够干什么。

现在我们学校也有一头小蛮驴,我们需要让它帮我们把一些物品从仓库送到信息科技教室,作为算法工程师的你,请为小蛮驴设计一个最短路线吧。

分析问题,建立最短距离模型

自然语言:第一步第二步第三步

导学案补充流程图

三、算法策略

算法工程师们都选择哪些算法呢?暴力枚举、迭代、分治还有动态分布等,这些算法策略我们在后面的内容会一一介绍。当然还有现在最火的推荐算法。为什么抖音会给你推荐喜欢的视频,淘宝回给你推荐你喜欢的物品,这些都依靠个性推荐算法。推荐算法在给我们带来便利的同时,也会让我们的视野变窄,享受在自己的舒适圈内,像一只蚕一样住在算法建筑的信息茧房里,自以为很生活很美丽。如何能打破这种恶性循环呢?可以做个实验,让任意两个人交换一下手机,查看大数据推送情况,就能发现一些之前从没见过的视频或者文字,所以,只有摆脱固定型学习思维,建立成长型学习思维,才能让算法更好的为人类所用。

总结,这节课大家学了哪些知识呢?相信大家对算法有了更深的理解。

我在最后还想和大家分享一个小故事。话说历史上最重要的物理学家之一,牛顿爵士,曾经养过猫。怕猫想进门的时候进不来,他在门上开了给猫专用的洞。有意思的是,牛顿开了两个洞,大猫走大洞,小猫走小洞。

你一听肯定觉得,何必呢,大猫小猫都走大洞不就得了吗?要照牛顿这逻辑,家里一百只猫,这门上不得有一百个洞。

你说的一点都没错,多个问题如果能用通用方案来解决,那我们就用一个方案就好了。这其实就是我们前面说的,算法工程师常常调用的一条思维习惯。你看,算法工程师的通用性思维,我们普通人也有。

上一篇下一篇

猜你喜欢

热点阅读