所有的循环都能转成地龟,所有的地龟都能转成循环,他们之间是可以互转的哈,为什么要说这个呢?是因为有的时候啊,我们遇到一些面试题呢,比较扯淡,他不准你用这个,不准你用那个,比方说,像这个求和函数本来挺简单的,对吧?当你不能用循环,也不能用数数方法, 那变成地龟了吗?那你只能用啥?只能用地龟啊,这个题呢,用地龟是很好写的哈,几行代码就写出来了,比方说,你可以怎么写呢?你可以这样写呗,对吧?写个子函数对吧?上,对吧?这个, 哎,如果说 i 大 于等于数组的长度得到零,是吧?否则的话是啥呀?否则的话,就是这个东西加这个,对吧?然后直接返回这个东西就完事了啊,这个代码很简单,你们自己去看。但是我要说的并不是这个啊,因为在面试的时候呢,他可能题呢,并没有那么简单。也有可能呢,即便是很简单,但是有些同学呢,平时很少接触地规,他写不出来。 那这里呢,袁老师给大家一个通用方法,就是你但凡能用循环写出来,你就一定能用地规写出来,尽管那个写出来吧,比你啥也写不了。好吧, 这个通用办法是啥呢?咱们来举个例子啊,就是一个循环和帝国的之间的相互转换,比方说这是第一个函数 demo 一, 他比方说啊,这个函数不管实现什么样的功能,他要用循环来实现。那个循环是怎么实现的?无非就是这么一个结构嘛,就是前面代码,前面写一堆代码,然后呢,一个后循环,对吧?这是初式代码,后循环不是分为三段嘛,对吧?初式代码,然后中间是个条件,是吧?然后后边是个啥?后置代码 吧?有的人说那外循环呢?那是后边代码,对吧? 这是个循环的结构,那这个结构如何来转换成地龟呢?它是有一个通用的公式的,首先你前面代码还是原封不动的做一遍,然后接下来是不是进入循环了?初使条件循环体后置,条件循环体后置,条件循环体后置,是吧?就在这里绕了,那这块地龟怎么写呢?你首先把初使代码 来一遍,对吧?这个代码只运行一次,那后面就是绕了,那绕的话,我们写个子函数,这个子函数里边首先判断条件是否满足,这就是地归的出口,如果说条件不满足的话,那么就结束,对吧?就不再进行了,反之条件满足的话,要干嘛?是不要运行循环体,对不对?条件满足运行循环体,然后呢,接下来运行后置代码, 把后置代码运行好。后置代码运行过后是不是又要判断条件了?那是不是进行地归了,对吧?地归调动自身就写完了,然后最后呢,把这个后续的代码加上啊,就完事了。你看这就是循环转成地归的代码格式,那咱们来套一套呢?是一样的啊,你把这边先用循环结构写出来,循环很好写吧,对吧?定个变量,然后呢循环每次每家返回,对吧?循环的写法,那 换成地归呢?那是不是我们就可以再来一遍,对吧?套一下不就完了吗?把这边的公式直接复制粘贴过来,而且这个公式是可以推倒的,是吧?粘过来 前面代码是啥?是不是这一段弄过来?初式代码是啥?是不是这个东西弄过来,然后这里条件是啥?条件是不是这个东西,对吧?相反的条件是不是就相当于是 i 大 于等于长度,对吧? 然后循环体是啥?不就这个吗?粘贴过来,后式代码是啥? i 加加粘贴过来,那后边代码是啥?就返回这个 s 就 完了啊。哦,这里还少一步啊,就调用这个函数啊。这边也是一样啊,少了一步啊,这叫调用这个函数来进行递归,是吧? 这样就写完了。我写了个啥我都不知道,但是呢,功能一定是正确的,咱们来试一下吧,上面我出示了啊,咱们调一下这个函数求和啊,得到结果应该是十五哈,运行看一下,这个写错了,单词写错了啊,来再运行看一下,是不是结果正确的十五啊,就这种方式呢,你写错代码了,可能没有那么好看,至少比啥也写不出来好,是吧?好,就教给大家这么一个技巧啊,循环转递归。
粉丝8.3万获赞123.0万

同学们,这个寒假啊,我建议大家一定要试一试这个 ai 地龟学习法啊,要尽早的开启你的 ai 时代的学习模式哎,先来用是什么?为什么?怎么做?跟你们解释一下,什么是 ai 地龟学习法 啊?这是一位高中的错学生啊,加布里埃尔佩特森,他提出来的一种快速学习方法。 那么皮特森呢?就用这个方法,人家三天就搞定传统路径需要六年才能掌握的知识,最后成为年薪七十万的 open ai 的 研究科学家。各位, 那 a i d 规学习法难吗?一点都不难,人人都能学会。咱们传统的学习啊,是先学基础知识,哎,我告诉你,呃,你要先学个五六年再来应用,对吧?但 a i d 规学习法反过来了, 他是从真实的项目或者一个目标开始,用 ai 来做计时导师,通过持续不断的追问和补全那些知识的一个一个的缺口,形成从实践到提问,再到理解再实践这样的一个闭环, 从而学会学习,完成知识获取的目标。那我给大家举个例子吧,如果你想要做一个啊,这个 ai 视频生成模型啊,要做这么一个项目, 按照传统的学习路径,各位,你得先学数学吧,再学编程吧,然后了解一下什么叫机器学习,什么叫深度学习,最后到这个项目要怎么干,估计你咋也得考到研究生才能开始工作了。 但彼得森用的这种方法,哎,是反其道而行之,先确定这个项目的目标, 我是要用 ai 最后生成视频,对吧?那怎么办呢?我先得让 ai 给我写一段代码,接着他就看这些代码,看到哪一行他不明白,就问 ai, 哎,这啥意思? ai 告诉他说,哎,这是扩散模型,他就继续问什么是扩散模型等等, 通过这样的方式,从表面的代码一直延伸到底层的数据,他借助 ai 都问清楚了,问清楚不算完事,他自己还会给 ai 来复述一遍 啊,就像飞马学习法一样,我说一说,你听一听,对不对啊?让 ai 来看,我理解的怎么样了,哪是有问题的啊,如果有问题,你给我补充, 那 ai 给他做了各种各样的纠正,他就这样每天问 ai 一 百个问题,三天之后人家就上手入门了。当然,这个状态是很重要的,不是看一会 ai 刷一会短视频啊,是全力以赴的全情投入。 各位,这其实是整个世界未来学习模式的一个雏形。那现在你可以做什么? 很简单,从你感兴趣的一个话题可以切入,做一个小研究,或者一个小作品。比如你喜欢动漫或小说,那你就可以让 ai 给你一个梗概,或者你自己讲一讲你想写什么,然后啊,你让他给你生一个梗概。 呃,同时你问 ai, 你 为什么要这样来设计这个故事?人设你是怎么定的?为什么?一路问下来,你会发现你基本上对于写作就很清楚,你也知道如何能够写出一个特别吸引人的好故事。 如果你关注数码产品,那你可以啊,研究一下不同手机那个屏幕亮度对视觉疲劳的影响啊,注意保护一下自己的眼睛, 让他啊用 ai 给你一个研究的思路和流程,你问他为什么要这样设计一个好的实验,包括什么? 一步一步到那个底层的原理,在这个过程中,各位,哎,你不仅实验研究清楚了,你的数理化知识也顺理成章的就到位了。


好,那么计算思维我们前面说了关注的分离,那么第二个呢?是什么呢?地归,我们说这个地归是计算思维的一个核心,为什么地归思维很重要呢?因为在计算机解决问题的过程中啊,我们不可能 所有的问题都能够从头到尾看的很清楚,就是说每一步你都能知道怎么去写,这个是非常困难的。 举一个简单例子啊,有个问题叫 aloy, tawa, 叫汉洛塔,这个汉洛塔就是一个大碟子上面垒一个小碟子啊,越来越小,那么你要把这些碟子 在不改变他们这个顺序,比如说小碟子不能放在大碟子上面啊,这就压碎了的情况下,就是它是穿在一个柱子上,从一个柱子搬到另外一个柱子上去,如果你用简单的循环写,你写不了,因为什么呢?你不知道这个碟子应该怎么去,转来转去的,对吧?他是一般人是三个柱子 从左边搬到右边去,你从这边拿掉一个碟子,你要么放在中间,要么放在右边,这中间是变化的,直接写一个循环,你就没法写,你不知道怎么循环,这时候地规就很容易解决出问题。地规的思路是什么?一个大问题分解成一个 更小的问题,更小的问题啊,这个就叫 d 从大变小, d 到什么时候结束呢?这当中问题太小了 啊,这个问题很小,小到什么一眼就能看出来,直接就能得到答案。有很多很多例子,比如说你一堆数找最大值,你一堆数你找,那你要比,但是如果说你这个越来越小,就只剩下一个数,一个数它就是最大也是最小,所以说这个一下就找到了,那么找到了以后,你用这个小的再去解决大一点的, 那现在叫归,比如说你从十九八七五六四三二一,再从一归到二,二归到三,也就是用二的结果解决三的问题, 如此上去,特别是在解决阶乘的问题时候也是这样的,八的阶乘等于八乘,以七的阶乘搞定七的阶乘就知道八的阶乘怎么算了。 所以说帝龟啊,由于它的特点,它能够让一个函数自己调用自己,那不对我们来说不就省事了吗?我就不用写这个过程了,它自己去弄,弄的过程中究竟该怎么放这个碟子啊? 究竟该怎么去做这个地归阶梯计算都是他来搞定,我们就变成一个设计者,我们就设计好这个地归的过程,然后让他自己去跑,这不就正好按合了我们计算机解决问题,而不是我们人去解决问题。如果说你把一切的步骤都写清楚,让计算机做,其实你在做啊,然后计算机在算, 现在呢就变成你在设计这个过程,计算机真的是在做,计算机在解决这个问题。所以说这样的话啊,地归实际上是一个法宝。事实上大部分计算机科学里头的重要问题,特别是图里面的啊, graph 这里头的很多很多问题都是这种记地归来讲 想深度搜索啊什么的,所以说掌握地归,其实你就掌握了这个其中的精髓,很多题其实就是要地归去搞定。

这哥们二十二岁,高中辍学,靠一套学习方法进 openai 当顶级科学家。这套方法叫地归学习法,适合各行各业各年龄段的人,而且用豆包就能实现。看完这条视频,能让你明白什么才是 ai 时代的学习方法,为什么我们以前学的慢?你过往的学习经历告诉你, 学任何东西,必须先把所有基础学完,再一步步往上去。但这哥们就完全反着来,他想搞懂老规矩,死啃厚厚的数学教材, 而是直接让 ai 生成了段视频生成模型的代码,跑不通,就逮着 ai 一 层一层的问,几天就啃下了别人好几年才能学透的内容。这就是地归学习法,自顶而下,先定一个具体的目标, 然后直接动手干,遇到不懂的问题,就像挖井一样,一层一层往下拆解追问,遇到一个知识缺口就补一个,直到挖透底层原理。比如我作为一个新手短视频博主,不知道抖音的流量机制,那我就直接打开抖音后台,同时给豆包打电话, 选共享屏幕,这样豆包看见的就和我看见的是一样的。直接问豆包,我这个两秒跳出率和五秒完播率的数据怎么样啊?两秒跳出率百分之三十八点二二较高,五秒完播率百分之四十四点七六,还不错。 为什么抖音要单独给这两个机制啊?是什么意思啊?代表视频播放过程中不同时间点的观看人数比例变化情况。这个流量池又是什么意思啊?抖音流量池是算法分配流量的分级容器。 通过一层一层的问,我就从视频数据的表象问到了抖音流量池的规则,只要我想,还能接着问下去。再比如说,我想学英语的语法,不用从头开始学,直接对着英文名著问豆包。 豆包帮我拆解一下我画的这个句子的句式,句子主体是, i never saw this great uncle, but i'm supposed to look like him。 什么是伴随状语啊? 伴随状语表示状语的动作,伴随主句发声。用这套地归学习法,搭配豆包共享屏幕,不用啃厚教材,不用死背知识点,从一个真实的问题出发,一层一层挖透原理, 不只是学会一个点,而是直接搞懂一整个体系,给你省下大把时间,而且还免费别人按部就班走老路,你用对方法抄近道,这才是 ai 时代的顶级学习力。

我的世界纵向无线活塞地硅超级简单,又省时间又快,而且电路面积比较小。 卡拉卡蹦沙卡拉卡呀蹦沙卡拉卡蹦沙卡拉卡呀! kind of bumping jumping boom shaka like a yard。 沙卡拉卡呀! bumping dropping boom shocker like a yard。


魔改缠论形态学全新地规规则三,前面两套规则,一套砍了线段,一套连笔都不要了。核心目的都是让分解变得更简单,更容易上手。 但这套规则不一样,这套规则的出发点不是简化,而是最优化。我要找的是一种最能贴合走势内在纹理、最能还原其生长过程的分解方式。 怎么整?得先搞清楚一个问题,什么样的结构最接近走势的本来面目?咱们看两个最简单的形态,一个是上涨,高点和低点都在抬高,一个是下跌,高点和低点在降低。 这种结构最规整、最漂亮,也最贴近走势内在的趋势性价格,要么一路往上,要么一路往下,不带半点含糊。如果所有走势都长这样,那分解就太简单了,直接把每段首尾一连就完事。可惜现实不是这样, 真实走势里,规整的段落和乱七八糟的过渡段总是混在一起,就像一条河,有平缓笔直的主干道,也有弯弯绕绕的支流和回水区。 那么怎么分解才能既保留主干道的规整,又不破坏支流和回水区的真实形态?我想到的办法是八个字,提取。规整保留过度。什么意思啊?就是把那些规整的方向明确的段落优先提取出来,作为基础构建。 而那些不规整的连接段,就让它保留原样,不强求把它掰成标准形状,然后以这种方式一层一层往上递归。这么说可能有点抽象,咱们用个复杂走势图来演示, 你看图上那个五到六段。按照新规则,我在这里加了两个内部端点,叫五 a 和五 b。 五 a 不是 标准底分型,五 b 也不是标准顶分型,但我还是把五 a 到五 b 连成了一段。为什么? 因为五 b 到六本身是一个完整清晰的下跌结构,我得先把它独立分解出来。至于五到五 a 和五 a 到五 b, 就 当做进入这个下跌结构之前的连接和过渡。 再看十三到十四段,同样加了两个端点,十三 a 和十三 b。 这次十三 a 虽然不是底分型,但十三 b 是 明确的顶分型,而且一三 a 到十三 b 本身构成了一个完整的次级别三段上涨结构,所以优先把它提取出来。 幺三到一三 a 就 作为十二到十三和一三 a 到十三 b 之间的连接线段。你看这种分解方式在局部细节的解析度上比前两套规则都高, 它能更精细的刻画出结构内部的动力演变过程,比如下跌之前的挣扎,上涨之后的犹豫。但有意思的是,如果继续往上递归到更大级别,你会发现整体的分段框架和前两套规则其实是一样的, 差异只在五到六、十三到十四这些段落的内部,它们被解析的更细了,但这不影响大级别的骨架。这就引出了一个很重要的概念,叫做级别的无极变速。 咱们用集中典型的中枢纽形态来演示一下,先看收敛三角形。分解步骤是这样的, 第一步,提取第一个上长段五到八,这是最低级别。第二步,把三到四、四到五和五到八合并,得到第二个上长段三到八。第三步,把一到二、二到三和三到八合并,得到第三个上长段一到八。 你看这个走势呈现出三个级别,如果把每个时线段当成一级,一到八当成二级,中间那两段三到八、一到四该算几级? 按整数级算,它们加在一级和二级之间,按实际看,它们正好是过渡一点三三级,一点六六级, 这就叫无极变速级别,不是跳跃的,是随着结构自然生长平滑变化的扩张。三角形也一样,只是方向反过来再看,顺势平抬行。 这种形态有两种分解方式,都符合规则,一种是从一到四,再到一到六,最后到 一到八,殊途同归,最后都是一到八。 在实际操作中,根据当下的分析,需要选更有力的那一种,这就是结合率的灵活运用。逆势平台型,最简单两步就完事。最后,我用一个包含多种中梳形态的多级别走势图来完整演示这套分解方法。 按照标准缠论的分解,这个走势被拆成进入段一到六,加上中梳段,六到十五到二十,中梳区间是九到十二。 但按我这道新规则分解出来是这样的,第一步提取基础段二到五,九到十二,十五到十八。 第二步合并出一到六,九到十四,十五到二十。第三步合并出八到十五,第四步合并出一到二十一,共五步,五个级别。 在这个框架下,中疏区间变成了八到十五,比标准缠论的九到十二更完整覆盖了价格震荡的整个上下边界。你看这种分解方式,更贴合走势内在的动力学结构。 说到这里,你可能已经发现了,这套规则和标准禅论在逻辑顺序上是颠倒的。标准禅论是以中书为核心,先有中书才能定义更高级别的走势。中书是地规的必要构建,没中书就升不了级。 我这套规则不依赖中书,地规完全靠对走势进行定义化的折线处理来完成。中书是地规完成之后的产物,先把走势转化成折线段,然后在这个基础上再去找中书。 中书的延伸、扩展、升级这些概念根本不用在地规过程中去分析,只需要看最后图形里有没有自然显现出符合条件的更大级别中书形态就行, 有就有,没有就没有,一目了然。这就是我想要的,地规在前,中书在后,把地规的复杂性和中书的识别分离开,让结构分析更直接,减少主观判断的介入。

嗨,我是心意零一,今天说的是这个无线地规,任意长度都可以,点按钮,启动机械臂就可以一直向后拉走方块目前没什么应用场景,但学会终究不是坏事,点这边开关就可以推出来。 这里以五个机械臂为例,先在旁边搭一排方块,然后接一个增幅器,一个电线,一直这样重复就好。这个是为了快速推出机械臂用的,启动一下, 通常情况下一次是不足以完全推出的,其次就是我还没有调节严实,现在模拟一下拉回去的步骤,你们仔细观察是否有共 重点, 发现共同点了没?没错,就是这样, 没看清可以截图观看。在这个位置放一排方块,要隔开一格,在中间放增幅器,旁边放心能产生气,竖着再放一排, 后面放增幅器,再反过来放一排, 前面再放方块。延时 调成二,就是点增幅器一下,再放一排产生器,这样就形成了一个 s 型的回路,后面再放一排增幅器, 再放方块,现在接上开关就可以使用了。这个电路已经省略掉那些重复的地方了。 前面这里也要调成二的岩石, 这样就可以正常运作了。但是他只能使用闪屏信号。 先把开关拆了,用增幅器串连起来,延时先调成二,这里做 一个闪屏,像我这样放就可以了。 启动一下试试,没有拉回去,就是延时不够。 把这里的岩石调成三,就是增幅器上只有一个灯在亮的情况,现在再启动就没问题了。 另外,如果要追求稳定,就把全部的增幅器调成三好了。今天的内容就这么多了,如果没看懂原理,可以自己建一个,就可以慢慢思考其运作原理。我是心意零一下,期见。拜拜。


掌握这个思维能让你省很多钱,能让你在各个领域有一个专家级的导师,甚至能让你赚很多钱。 我们都知道 ar 是 现在这个时代的主角,那我们如何去利用 ar 呢?很多人都困于不知道怎么去用 ar, 其实这只是一个思维的转变,就可以做到很好。 这个思维是什么呢?其实有一个概念叫递归,大家可能没听说过这样一个词,我用大白话来说,就是让它本身去调用它本身,也就是比如 ar, 就 用 ar 来去调动它自己 这样一种思维,就比如你不会和 ar 说话,那你就让一个 ar 描述出来,然后丢给另一个 ar, 这样从中间找一个相当于一个翻译的一个角色, 让一个 ar 翻译成另一个 ar, 给到另一个 ar 让他去干活,这样呢有一个中间角色,就你想做的事情,他呢就能够很好地表达出来。 这就是为什么现在这种编程就是人,他不会,不用学编程就可以做出软件,做出小程序等等。就是因为 原来我们人需要和机器沟通的这个环节,打通了,利用 ar 就 可以,你只需要描述清楚你想要的东西,那 ar 它就可以帮助你实现。 所以这个打通之后,后面呢就是特别容易了。所以利用这个思维就是你要不会什么,你就向一个文 a r 提出来,比如 我想要一个英语老师是吧?你不知道如何让这个英语老师如何去辅导你,那你就给一个 a r 说一个诉求是吧?我想拥有一个 ar 老师是吧?帮助我提升英语,提升 表达能力,提升这各个方面的东西,能够和外国人说话这样的,然后让他给你制定这样学习计划啊,你不知道如何办啊?那你可以就这样说,你请你给我一个提示词,让一个 ar 做这样一个角色啊,我应该给他什么样的提示词? 就这样一个,这就是地归的一种思维,就是让一个 ar 给到另一个 ar, 是 吧?让 ar 调用 ar 这样的概念,所以 英语是这样,其他各个行业都是这样的,其实我们很多人说想拥有贵人是吧?那贵人在哪里呢? 其实你有了 ar 之后,你可以每个行业领域都可以设置一个自己的贵人,设置自己的一个导师,你有什么问题他来去指引你啊?你想想这个价值有多大, 而且很多时候,哎,如果你问对问题了,那跟财富很多相关的,如果你是专门的去做很多都会产生一些效益的, 所以拥有这种思维,你就能够在 ar 领域里边,在这个学习应用上面都能够 不用再去报各种班去学习了。只有只要这种一种思维,然后在不断的用的基础上不断的循环,你就能越来 越熟练,是吧?然后这种沟通交流的方式就是大家一定要记住这个概念啊,低微你可能记不住,那你就记住这个,找一个翻译是吧?找一个翻译,然后翻译给另一个 a, 你 学到了吗?

作为世界上第一个高级程序设计语言, fortune 产生于上世纪五十年代,它是几乎所有后来的高级语言的鼻祖。 fortune 语言产生之后,很快在工程计算领域发挥着重要作用。 fortune 语言率先提出了循环条件、辅之语句变量 模块、参数调用返回等概念。后来出现的高级程序设计语言,比如七十年代出现的 c 语言帕斯卡,以及九十年代出现的 passen、 贾瓦等语言,都继承了这些概念, 并且获得了很大的成功,而 fortune 本身却逐渐没落了。这是为什么呢?因为早期的 fortune 语言与后来的高级语言之间的一个最大的区别就在于, 前者居然是不能够实现地规调用的。什么是地规?地规就是函数直接或间接调用自己的这么一个过程。地规是一个非常重要的机制,通过地规,我们写的程序非常简短,可以大大提高我们编程的效率。 但是实现地规有一个要求,那就是子程序的参数和局部变量等必须放到对战里面去。假设有一个子程序 a 直接地规的调用自己, 在假设 a 有两个参数 x 和 y, 则在程序运行的时候, a 的两个参数 xy 必须放入对战里去。 因为 a 被调用了不止一次,每次调用都会有一对参数 x y, 调用了三次就会有三组 x y, 调用了五次就会有五组 x y。 比如假设第一次调用的时候, x、 y 分别等于一和二,第二次调用 a 的时候, x、 y 分别是三和四,显然这两组 x y 是不能够混淆的。 fortune 的此程序在被调用的时候, 参数并不是放在堆散里的,而是放在内存中固定的位置处,准确的说是放在每个函数的头部, 就像会编语言的子程序所干的那样。所以 fortune 语言的子程序无论被调用了多少次,其参数永远只有一组,而不是多组。 拿刚才的那个例子来说,如果子孙去 a, 有两个参数 x、 y, 一开始分别是等于一和二,那么在第二次调用的时候,如果把这两个参数分别改为三和四,则三和四就会分别 覆盖一和二,原来的一和二就会消失不见。这就是为什么 fortune 语言和会员语言无法直接实现地规调用的原因。 正是正对这个重大缺陷, c 语言才被发明出来。尽管后来 fortune 七七改正了这个缺陷,但是大势已去,后来其他的高级语言就逐步的取代了 fortune 语言, 但是佛群缘并没有就此消失,这又是为什么呢?因为地规是有代价的,地规要求一个子程序的所有参数必须进入对战,包括局部变量、临时变量。 这样当访问一个参数、局部变量或临时变量的时候,就必须先访问蹲在,然后才能访问到相应的局 局部变量、临时变量或参数。而 fortune 语言和会变语言就没有这个缺点,访问局部变量、临时变量和参数的时候可以直接访问, 所以后者的运行速度比前者要快。所以在一些实施性要求特别高的领域,佛群演员依然能够发挥重要的作用。

现在我们来讲解 recursive d f s 的算法。这里我们先定义我们如何处理一个节点,如果节点是 no 的话,我们直接返回,我们会用这些小人来执行我们的清单。当小人在处理这个节点的时候,如果他需要处理左或者右节点,他需要让自己的下属来处理。 比如他处理到这的时候,因为要去到下一个节点,他会叫来小红去处理右边的节点,他会在这等待,直到小红回来还会继续处理。下一行 是左中右,所以吃掉会发生在中间。 pre order treverso 因为我们先要吃掉,所以吃掉发生在最开始。投诉额,这的吃掉会发生在最后。 这里我们以音乐的 trverso 作为例子,来看看我们是以怎样的顺序来吃掉这些零食的。首先我们从九开始,小白到了九开始处理节点,九不 不是闹,所以他没有返回。他到了这一行,他派出小红去了左边的六。小红开始处理,六,六不是闹,他也停在了这排出了小黄。小黄来到了左边,他看到节点不是闹,所以也到了这一行处理节点。 left, 他派出了小粉。小粉来到左边开始处理, 他发现这个节点是 no, 他返回到小黄这里,告诉他我结束了。小黄来到下一行继续处理,他吃掉了这个零食,所以第一个被吃掉的零食是三。小黄继续处理到了这一行,他排出小粉去右边。 小粉来到第一行,发现节点不是闹,所以他到了这一行,他派出了小子去处理左边的节点,小子发现左边是 no, 所以返回告诉小粉。我处理完了。小粉来到了下一行吃掉,所以第二个数字是四。小粉继续到这一行,他派出了小子去看右边, 小子告诉他右边什么东西都没有。小粉继续前进,来到了这一行,他去回报给小黄。小黄也来到了这一行,他回报给小红,小红的左边处理完了,所以他来到这一行吃掉,所以我们的数字是六。 小红来到这一行,他派出小黄处理右边,小黄来到右边,发现不是 no, 所以他又到了这,他派出小粉去左边,小粉告诉他左边是空的,所以他继续吃掉。我们,这个数字是八。 他来到下一行,又派出了小粉,小粉又会告诉他是空的,所以他直接结束了,他回报给小红说又变结束了。小红也来到这行, 他回报给小白,这时小白终于迎来了小红的回复,所以他前进到下一行,这是他吃掉了酒。前进到下一行,他排出小红处理右边节点,小红发现不是 no, 所以他来到了这一行,他排出小黄去处理左边的节点,小。 小红发现不是 no, 来到了这行,他拍出小粉,小粉发现左边是 no, 所以告诉他结束了。小红来到这一行吃掉,继续前进,他又派出小粉,小粉告诉他结束了,他继续前进。结束了,所以他回报给小红说左边结束了, 这是小红前进到下一行,他吃掉了十二。小红继续前进到这一行,他要派出小黄去处理右边。小黄来到这里,发现不是闹,所以他继续前进。到达这一行,他派出小粉去左边,小粉告诉他左边没有结束了, 小黄继续前进,小黄吃掉了石榴,小黄继续前进,小黄派出小粉去处理,右边小粉告诉他右边结束了。小黄继续前进,结束了,他回报给小红, 小红继续前进,发现结束了,他汇报给小白,小白他前进到这一行,他也结束了。这里我们的 internet 捶背 so 就结束了。新鲜的你也许会发, 发现这些数字是排序的,这是因为这个数据结构是一个 bst。 在处理 bst 时,如果我们用的是 in order traversal, 我们得到数据的顺序是从小到大的。这里如果把吃掉的位置换到前面, 让我们变成 pre order, 水味儿送,我们就不会得到一个从小到大的数据流。 the recursive d f s 就讲完了。如果你有任何疑问,请在评论区提出,我会尽快回答。

谈论走势的地龟到底是怎么看的,就怎么从一分钟的级别就走成五分钟的走势了呢?这个地龟的过程,生长的过程能不能给我们看一下啊?当然可以了, 我们以上证指数为例啊,这是他的一分钟的图,我们来看一下啊,从四二五八啊,到今天四零七四 整个走势,他怎么是从一分钟级别的走势走成五分钟的 啊?或者从一分钟次级别走成一分钟的啊,都可以给大家看一下。好,这是上证指数的一分钟图,我们来看一下整个走势就是 不断生长的过程,那我看这是个一分钟的次级别,你仅仅是个一分,现在吗? 线段上,线段下啊,我可以画个线段上,线段下,线段上,然后这里出了个新低,你发现了没有?我画的都是一分钟线段哦,我们说一分钟的线段,把它当成一分钟次级别来用,三个一分钟线段重叠, 那就形成了什么一分钟中数啊?这就是大 a, 看到没有?前面是 a, b, c 进入,这是个小 a 啊,这是个小 b, 但这个小 b 段比较特殊,它不是个线段,它是一笔 啊。在缠针中,我们说它直接发生转折的话,叫小转大,发现没有?它发生小转大,没有。你看一分钟线段,线段,线段,线段,线段, 三个一分线呢?是不是又形成个一分钟书左右是不是有两个一分钟呢?那今天的走势呢?今天一个一分线呢?直接跌穿,连这个什么七张点都跌穿了, 那万一明天跟现在反弹连这都回不来,这不传升到二三脉合一吗?在这镇上再走个一分钟回才发现问题,没有发现什么问题呢?哦,他到这是个一分钟的盘整,他到这是个一分钟盘整,这边再走个一分钟盘整或者趋势, 你发现了没有?是不是形成更大级别中数了?三个一分钟走势类型重叠,就形成了一个五分钟数啊? 啊,如果我们只研究从这个高点开始到这个下跌的话,实际上在走势结构中这叫 abc, 也就是说五分钟最简单的盘整, 对吧?这是第一段,这第二段、第三段,如果再来个第四段、第五段呢?这就叫标准的盘整,他俩有什么本质区别?没有?没有, 都叫五分钟盘,只不过是他只有大 a, 他 不仅有大 a, 还有进入段离开的,这就是从一分钟的线段不断的生长,有一分钟线段重叠,那形成一分钟中疏。有三个一分钟中疏的时候, 当然这三个都是不同的方向的先间的,你不能说有三个都是单边下的,那还是一分钟趋势吗?有三个一分钟走势重叠的时候, 那就形成五分钟数了,你看现在就是五分钟 a、 b、 c 了,对吧?如果后面再来个上涨呢?啊,那相当于在后面形成中数,那整个这个小 a 段就是进入段了 啊。目前我们看的话,如果这个震荡下行走出来,先把它当成五分钟 a、 b、 c 的 一个回踩,这就是走势从小级别不断生长到五分钟的过程。

为什么有的无限地规他会报错,而有的无限地规呢,他又不报错,你看这道面试题,他里边的无限地规,他就不会导致报错,到底是咋回事?那咱们呢,一次性的把这个无限地规和暂移出的错误给讲清楚啊。首先咱们看会报错的无限地规的情况,这个呢,肯定报错,对吧? 运行啊,暂移出了错误怎么来的?你只有理解了这个错误是怎么来的,你才能理解面试题那边为啥就不报错了,怎么来的呢?所以我们要知道啊,在 gs 引擎启动的时候呢,它会只拍一块内存空间,这个内存空间的大小呢,是固定的, 它叫做执行站啊,不同的环境下边,也就是不同的浏览器啊, low 的 环境里边啊,它的空间大小呢,可能是不一样的,而且呢,像 low 的 环境里边的空间大小,你还可以在启动的时候呢给它进行指令,但是不管怎么样,它的大小一定是固定的,一 般呢都不会太大啊,过去呢只有几兆,现在呢可能有几十兆了,但是呢,反正不会太大了,这空间用来干嘛的呢?就是你后边每一次调用函数啊,注意是调用函数啊,像这里调用函数, 那么这个时候呢,他都会给你生成一个执行上下文,他就会保存一些信息啊,这个信息呢不是我们这里要讲的,总之呢,他会占用一定的内存,然后这个执行上下文他会入站进去,哪一天这个函数调用结束了,就函数运行完了,他就会出站 出去啊,这个执行站就是用来装这个执行上下文的,就执行上下文这一块还涉及到很多知识啊,像什么历史指向跟执行上下文有关系,像这个 b 包啊,作用域啊,都跟执行上下文有关系啊,不过呢,这里不是重点啊,总之,执行上下文他会入站, 你说你这里调用了吧?好,那么现在开始执行这个函数,执行这个函数的期间,你是不是又调用了自身?管他是不是调用自己,只要遇到函数调用,一定会产生一个新的执行上下文。记住了啊,只要遇到函数的调用,一定会产生一个新的执行上下文,然后要入站。那之前那个函数结束了吗?还没结束啊,之前那个函数还等啊,等他运行完了,我才能结束啊。 所以说,这个时候,之前的函数还没结束的时候,又产生那个执行上下文,又入站了,所以要转而去运行这一次的负调用,对不对?而运行它的时候,是不是又调用自身,那又一个新的执行上下文入站了?就这样不断的入站,不断的入站,直到把这个站的空间给它撑爆了,于是呢,他就会给你报一个错误,最大的站空间,你看, cost tag, 就是 执行站的意思,执行站的尺寸溢出了,那么于是呢,就看到这个错误了, 好,这是地规会报错的情况下啊。那么什么情况下不报错呢?就是你把地规呢是放到异步里边去处理的,他就不报错了,你看一下啊, 这就不报错了,来运行看一下,对吧?一直等吧,你等到天荒地老,他也不报错,他会忙,他会很忙,但是呢,就是不报错, 那这又是怎么回事呢?还是画张图啊,这是咱们的执行站,然后第一次调那个负,是不是新建一个执行上下文入站了,对不对?好,那么这次调我们来看一下啊,进入这个负来执行,他做了什么事呢?每一个字注意听啊,通知计时县城,你去计时,我不管了,我就结束了,这就是一步 这一块呢,还涉及到事件循环哈,你去计时吧,我就结束了。所以说他这个负啊,他就运行结束了,执行站就被清空了,而与此同时,那个计时现场那边,计时是不是零秒马上就到达了? 结束了,对不对?那结束怎么办?他就会把这个函数推向什么事件队列,事件队列里边,他等着了呗,排队呗。那等我这个执行站什么时候空闲了,我就从事件队列里边又取出一个任务,就是这个负函数又来执行,又进站,又去执行这个负函数计时到了吗? 执行赋函数是不是又去让他计时?我不管了,我结束了,然后计时完了过后,又一个新的赋函数进来执行啊,执行完了过后出去,然后新的赋函数进来执行,反复的这样子,你看这个执行站还是比较空闲的,他没多少东西。忙的是啥呢?忙的是 cpu 在 那里挑来挑去,你把他累成孙子了。但是呢,执行站还是空空主义,因此呢,像这种做法,你看目前都一直在执行,这里可以停止啊, 停止了吧,他一会一直执行,但是呢,他就是不爆炸。那除了这种溢步方式之外呢?还有什么? promise 是 吧啊? resolve, 随便来一个 zing, 里边放一个 f, 他 会不会爆炸?也不会啊,运行你看一下,还是一直运行,没有任何反应,因为只要是溢步的,这个函数是不会等待的啊,会继续往后执行 啊,这就是这个情况,他不会导致无限低端。然后这里顺便说一下,有些同学老师让我讲了个违地规优化,这个东西没啥好讲的哈,其实这就是个违地规优化,就在一个函数的最后一行代码里边,只有一个单一的调用之身,或者是加上一些非函数调用的表达式,比如说他加上一个一之类的 啊,那么这些都是属于违地规优化,那么很多语言的编辑器呢,他会把它编成一个非地规的代码。不过呢,我告诉你啊,在前端的 v 八引擎里边是不存在违地规优化的哈,是没有这个东西的哈,以前曾经 短暂的游过,然后很快的就把它去掉了。那么至于说是什么原因,我不太清楚,反正官方解释了一大堆啊,是这么说的,因此呢,伪低位优化对前端来说是不存在的哈,顶多就是应付一下面试的。