一个被严重低估的解决问题思想

教育   职场   2024-06-18 11:56   广东  

hi,大家好,今天分享一个特别重要的思想,这个思想是解决困难问题的利器,那就是分摊思想,今天深入介绍一下这个思想,希望大家可以从中学到一些东西。

什么是分摊思想

狭义的分摊是指算法复杂度分析里面,对单次复杂度高的操作,其操作代价可以通过拉长周期,在长时间看来,其复杂度可以分摊到每一次低复杂度操作,


简单地说就是,偶尔的高复杂度操作,并不能决定整个算法真实复杂度,随着算法长时间运行,高复杂度的操作可以平摊到每次的低复杂度操作,这样算法评估的复杂度就变成低了,也更接近真实的复杂度。


广义的分摊思想,是指要完成一个大目标,需要进行目标分解,分解成日常操作,是不是和上面狭义的定义有点类似,因为一般大目标是不可能一次完成的,需要日积月累,需要每天完成分解好的任务,这样最后才可能完成大目标(高复杂度操作)。


分摊思想就类似批量处理思想的对立面,批量处理核心原理是:借助计算机局部性原理,把多个单次操作,聚集起来形成一个大操作,一次处理完成,可以让处理更加有效率。


而分摊思想利用了积少成多特性,一般很多目标(一般指有一定难度的目标)都不是一次可以完成,都需要分解成细小任务,分散到每天生活中去完成。我们可以看一看此思想在各个领域中的应用。

算法中的分摊思想

上面章节已经说过了,狭义的分摊思想就是从算法复杂度分析中来的,偶尔的高复杂度操作,并不能决定整个算法真实复杂度,随着算法长时间运行,高复杂度的操作可以平摊到每次的低复杂度操作,这样算法评估的复杂度就变低了,也更接近真实的复杂度。


动态扩容复杂度分析


就是很多时候,不要因为方案里面包含一次高复杂度操作,就否决该方案,应该采用分摊思想进行复杂度分析,很可能长时间来看,分摊后的复杂度是可以接受的,但程序偶尔出现高复杂度读操作可能会导致性能抖动。


比如在Java中,传统的垃圾回收(GC)过程可能会导致程序暂停,这在一些对延迟敏感的应用中是不可接受的。因此,如果应用不允许存在这种暂停,就需要寻找其他的解决方案。ZGC(Z Garbage Collector)是一种新型的垃圾回收器,它采用了分摊的思想来解决这个问题。


ZGC通过每次只回收一小部分的垃圾,将垃圾回收的工作分摊到多次中,从而降低了每次垃圾回收对程序运行的影响。这样,即使在进行垃圾回收时,程序也可以保持运行,大大减少了垃圾回收带来的暂停,ZGC在标记、转移和重定位阶段几乎都是并发的,这是ZGC实现停顿时间小于10ms目标的最关键原因。

工作上的分摊思想


在工作中,公司都是把战略目标从上到下进行分解,把公司目标分解为部门目标,部门再分解为团队目标,最后团队再分解成具体可执行的任务,一般大厂都是这样倒推工作的,先定一个合理的目标,然后要完成这个目标(战略目标),各部门必须要做哪些工作(完美计划),再推动各部门严格执行(执行力),最后验收成果(复盘),就个就是当前大厂比较流行的目标管理方法OKR


这里面就包含了分摊的思想,怎么去完成一个大的战略目标,比如市场占有率,APP在线人数,营收增长等等,这些目标都需要分摊到每一天的工作中去实现,每天严格执行起来,才可以完成目标。


对于个人而言,首先要清楚团队的目标,其次要学会把这些目标分摊到每一天工作中,如果当天工作没有完成,很可能会影响到整个任务进度,甚至会导致部门目标不能完成,可能会产生蝴蝶效应,所以如果作为项目负责人,要随时发现这些风险点,并及时调整。

生活中的分摊思想

其实在生活中,很多人都喜欢只立flag,不管行动,没有具体落地的计划,并没有去分析如果要完成这些flag,需要完成哪些任务,没有把任务分摊到每一天生活中去,大多数时候,很多人都只记得flag,而忘记每一天要完成的任务,形成拖延症。



所以在生活中,我们需要明确可量化目标,比如减肥20斤,然后制定详细计划,并分解成小任务到每一天生活中,然后每天严格完成这些任务,相信这个目标很快都会达到(很多时候,只要严格执行,目标都会提前完成)。


我们可以看到,每一个成功人士的背后,都离不开汗水和坚持,唯有自律的人,才能每天迎接朝阳和晚霞。


我们可以举个例子:《邪不压正》中,人人都在惊叹彭于晏的身材,殊不知,他私底下为此付出了多少努力。


我们只是看到了他光鲜亮丽的一面,以前他也迷茫过,绝望过,他问过自己,为什么别人能够接那么多戏?有那么多粉?赚那么多钱?答案就是自己还不够优秀!

怎么让自己变得优秀?只有一个答案:拼命,自律。他没有才华,所以只能去拼命地努力,才能成为更好的自己。


在拍《翻滚吧,阿信》这部电影时,彭于晏挑战了电影中所有的高难度体操动作,这些都是他苦练了8个月才拿下了,每天严格控制饮食(分摊思想),体脂保持在10%以下,最后他学会了体操项目,并且把身材练得特别好。

经济学中的分摊思想


相信大家都想挣钱,很多人都给自己设置了目标,比如30岁之前一定要年薪100W,或者40岁之前实现财富自由等等,但是生活告诉我们,这些并不是到了30岁会自然实现的,需要一个非常完美计划和强大的执行力,需要从30岁的时间点,把目标100W倒推到今天,制定每天干什么,每个月干什么,每个一年达成什么目标,直到30岁之前计划,这是一个逐步实现的过程。


举一个不恰当的例子,一个从艺20年终于成功的明星,拍广告30分钟挣100万。如果单从这回报看,是不公平的暴利。但是事实上,商家购买的是明星的影响力,这影响力是之前20年不停积累的结果。也就是说这100万从他20年前就开始挣了,这30分钟只是最后的兑现。

最后总结

最后,从上面的例子中,我们深刻体会到了,分摊思想是非常重要的,要想完成一个巨大的目标,第一眼看上去确实很困难,其实只要认真去分解目标,踏踏实实完成好每一个小任务,坚持下去,说不一定哪一天就实现了自己的小目标。


希望大家不要畏惧设立目标,也不要轻视目标,掌握分摊思想精髓,在生活中,工作中的实践起来,把生活朝着自己预期方向发展。

参考和扩展

https://www.zhihu.com/question/19920338

https://www.cnblogs.com/gaochaochao/p/9216079.html


- END -



更多计算机核心技术资料:
  • 深入理解计算机系统

  • 深入理解操作系统(调度,内存,网络,IO)

  • 深入理解并发技术全景指南

  • 深入理解编程语言

  • 深入理解算法与数据结构

  • 深入理解网络协议

  • 深入理解网络编程

  • 深入理解性能优化

  • 深入理解分布式技术

  • 深入理解AI技术全景图

  • 深入理解数据库

  • 深入理解代码设计

  • 深入理解架构设计


更多硬核资料在极客星球,现在加入超级优惠,扫描下面的优惠劵,早点加入一起学习成长,早点突破成长瓶颈,完成初始的技术积累。


    坚持干货内容,欢迎大家关注极客重生  

感谢大家在看,转发,点赞

推荐阅读:

后端技术趋势指南|如何选择自己的技术方向

深入理解编程艺术之策略与机制相分离

再谈大厂招聘

豆瓣9.0,这几本神作,相见恨晚!

做完这些lab,国内外大厂横着走

大学知道这个,超过大多数人                        

极客重生
大厂资深技术爱好者和大厂面试官,专注硬核文章分享,帮助大家修炼技术,掌握技术大局观,扩展视野,提升认知,找到高薪工作,早日获得第一桶金。
 最新文章