社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

算法永远是计算机的灵魂,无论从事计算机底层、机器学习或者其它软件开发

机器学习算法与自然语言处理 • 7 年前 • 563 次点击  


老崔去某厂笔试时,遇到了经典的「狼、羊、白菜 过河问题」,由于经常看算法方面的内容,这道对于他来说,so easy。

题目大概是这样:

题号1:

农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。

请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。

老崔回家,自信满满的和女友说这道题时,女友反问到:“为啥程序员面试要考脑筋急转弯呀!?”

老崔这时认真起来,用理科生的严肃态度反驳女友:“这不是什么脑筋急转弯,这是道算法题,脑筋急转弯都是小聪明的歪理,别搞错了好不好~

如果你不是程序员,又坚持说上道题是脑筋急转弯,那你再来看看这道题:

题号2:

请你把10根放在篮子里的香蕉分给10只猴子,每只猴要得到一根,最后篮子里还要留下一根香蕉,你能做到吗?

不好意思地说,这道题是小学二年级的一道数学竞赛题,给你一些时间,思索一下,这道题是不是更有脑洞大开的味道。

作为程序员,去大厂笔试时都会遇到算法题,有些是正经的题,有些则看上去就是用来坑你的。

题目3:

你让一个工人为你工作七天,用一根金条作为报酬。金条被分成7小块,可以每天支付一块。

但是,如果你只能将金条切割两次,那么你如何切割金条,能满足每天支付一块给工人呢?

这题很简单,并不需要什么算法,其实是在考量你的数学思维。如果你把精力只用在处理金条上,并不考虑实际场景,那你就把自己坑了。

坦率地讲,上面那些题都像是来搞笑的。下面认真给出一些算法题:

题目4:

你有不限量的水,还有两个水桶,容积分别是5升和3升。如何精确地称量出4升水?

如果你有答案,那么看看这道题的升级版:

题目5:

现在有三个容积分别是3升、5升和8升的水桶,其中容积为8升的水桶中装满了水,容积为3升和容积为5升的水桶是空的。

三个水桶都没有体积刻度,现在需要将大水桶中的8升水等分成两份,每份都是4升水,(附加条件是只能使用另外两个空水桶)

这道题不止一个方案,一共有多少种方案,桶与桶之间倒水的次数哪种方案最少?这就是一个算法题了。

类似这种水桶倒水的问题,确实是各个大厂笔试的常见题目,也是筛除小白程序员和算法工程师的关键题。

这道题答对了,月薪要40K,答不对就要4K。

如果用人类的思维方式,那么解决这个问题的关键是怎么通过倒水凑出确定的1升水或能容纳1升水的空间,三只水桶的容积分别是3、5和8,用这三个数做加减运算,可以得到很多组答案。

但是计算机并不能理解这个「1」的重要性,很难按照人类的思维方式按部就班地推导答案,因此用计算机解决这个问题,通常会选择使用「穷举法」。为什么使用「穷举法」呢?

因为这不是一个典型意义上的求解最优解的问题,虽然可能暗含了求解倒水次数最少的方法的要求,但就本质而言,常用的求解最优解问题的高效方法都不适用于此问题。

如果能够穷举解空间的全部合法解,然后通过比较找到最优解也是一种求解最优解的方法。

求解这个问题的算法本质上就是对状态的穷举搜索。这样状态变化搜索的结果通常是得到一棵状态搜索树,根节点是初始状态,叶子节点可能是最终状态,也可能是某个无法转换到最终状态的中间状态。

这里并不细说了,如果你想弄清楚详细的算法解决过程【在这里查找】。

靠算法题筛选人才

下面梳理了算法面试时筛选人才时类似的关键题目,有些简单的,有复杂的。

大家不妨先收藏下来,抽空解答一下,秀一秀自己智商,再看看要不要找老板谈个加薪或者其他福利。

题目6:

现在有两种砖,分别是1*1的砖和1*2的砖,用这两种砖铺 1*N 的地面。

问共有多少种铺法?(输入为N,请输出相应的铺法数,经典铺砖问题)


题目7:

12个高矮不同的人,排成两排,每排必须是从矮到高排列,且第二排比第一排对应的人高。

求排列方式有多少种? 


题目8:

从一副扑克中随机抽取5张牌,判断是不是顺子(5张牌数字连续,大小王为任意数字)。


题目9:

输入两个整数 n 和 m,从数列 1,2,3…n 中随机取几个数,使其和等于m,要求将其中所有的可能组合列出来。 


题目10:

输入一个正整数 n,输出所有和为 n 的连续正整数序列。

最后再摆一道,烧脑题

传说中的爱因斯坦提出的思考题,他宣称世界上只有2%的人能解出这个题目,你肯定听说过不下一次这道题,但也肯定你始终连题目都没记清楚过。

题目如下:

据说有五个不同颜色的房间排成一排,每个房间里分别住着一个不同国籍的人,每个人都喝一种特定品牌的饮料,抽一种特定品牌的烟,养一种宠物,没有任意两个人抽相同品牌的香烟,或喝相同品牌的饮料,或养相同的宠物。

问题是谁在养鱼作为宠物?为了寻找答案,爱因斯坦给出了以下15条线索。

1. 英国人住在红色的房子里;

2. 瑞典人养狗作为宠物;

3. 丹麦人喝茶;

4. 绿房子紧挨着白房子,在白房子的左边;

5. 绿房子的主人喝咖啡;

6. 抽 Pall Mall 牌香烟的人养鸟;

7. 黄色房子里的人抽 Dunhill 牌香烟;

8. 住在中间那个房子里的人喝牛奶;

9. 挪威人住在第一个房子里面;

10. 抽 Blends 牌香烟的人和养猫的人相邻;

11. 养马的人和抽 Dunhill 牌香烟的人相邻;

12. 抽 BlueMaster 牌香烟的人喝啤酒;

13. 德国人抽 Prince 牌香烟;

14. 挪威人和住在蓝房子的人相邻;

15. 抽 Blends 牌香烟的人和喝矿泉水的人相邻。

留言活动:

不要百度:靠自己能力,留下你的答案

一般人很难记住这么多线索,即使之前看过这道题,蒙对了答案,但让你写一下算法思路,照样傻眼。 

如果你是真 · 算法工程师,那就不是一般人儿了,请再次秀出你的智商。

由于此题求解过程复杂,详细解答过程请【点击这里】

应试教育出来的我们,在上学学习期间缺少方法和指导。工作这些年也可能很少接触要自己动手写算法的任务。

但算法,一直都是体现程序员能力的基本要素,也是拉开收入差距的关键指标。


想学算法?


缺方法?

7大方面,从基础到应用,趣味精讲算法;

缺时间?

43天,1天1个算法知识,每天15分钟;

缺练习?

35个经典算法相关案例分析;


原价:69.00

限时特价:49.00

>> 算法应该怎么玩?<<





参考来源:

封面图:动漫《银魂》

算法经典书 | 算法的乐趣

算法经典书 | 图解算法

算法经典书 | 算法之美

分享决定技术高度

学习拉开技术差距

 >>GitChat<


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/BkQNdQh2tA
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/22870
 
563 次点击