范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

揭秘你处理数据的底层逻辑,详解公式引擎计算(二)

  上篇中我们介绍了计算公式引擎的计算原理,本期我们继续带着大家了解在Excel表格中公式引擎的实现原理。背景
  在上节中解决了基本运算的逻辑之后,在一些实际业务场景中,公式计算并不是单一公式进行的独立运算。我们经常需要将一个很大的运算分解成前后依赖的小运算;同时这些单元格之间的计算会出现很多相互依赖,计算顺序也是要考虑的一个关键问题,我们需要将一系列具有先后顺序的同类运算管理起来依次执行。
  为了实现这种计算关系之间的管理,出现了计算链,用以对公式之间的依赖和先后顺序进行管理,处理在电子表单中错综复杂的依赖。涉及到图的处理,脏值计算等内容。接下来我们将从图计算出发,介绍不同图的计算、按需计算和脏值处理的问题,更加深层次的了解Excel表格计算中计算链相关问题。计算链
  让我们先从两个表格计算问题出发。第一种简单情况:
  在这一串计算公式之中,当C1赋值为1时,A1的结果为3。但此时如果修改C1的值,C1=10,此时B1的内容还没有修改,A1依旧是3,然后B1=10+1=11,这里就会发现A1内容计算出错。第二种更加复杂一些的情况:
  我们用图的结点表示单元格的计算内容,箭头代表依赖关系。入度为零的节点,完全不依赖其他节点内容,所以计算的顺序应该是从不依赖其他节点的节点内容开始。单元格A依赖F、E,D依赖C、B,C、B又分别依赖F、E,唯二不依赖其他节点的内容是E、F。
  这样就得到了一个稳定正确的计算顺序,这个顺序被称之为计算链。在这个例子中计算链是:F,C,E,A,D,B。有向无环图和有向有环图的计算
  在一张图中,如果从一个节点出发,最后能回到这个节点,我们称之为有向有环图,反之被称作有向无环图。
  左图中不论从任意一个节点出发都不能再回到该节点,所以左图是有向无环图。
  右图中A点可以出发后回到A节点,所以右图是有向有环图。
  我们将计算节点和计算节点之间的关系拆解成有向图后,就可以使用计算有向图的标准方法得到一个可靠的计算链。
  1、有向无环图的计算
  对于每一个节点存在入度和初度的概念,入度:多少箭头指向当前节点,例如对于A节点,入度为1;出度:当前箭头有多箭头指出,例如对于B节点,入度为2。
  在对有向无环图进行计算的时候,就利用了图中入度作为优先级排序,每次运算入度为0的节点,然后移除。
  以上图为例,完整的计算过程如下:
  1.初始化,统计入度: A:1 B:2 C:1 D:2 E:0 F:0
  2. 计算 E 节点,更新入度: A:1 B:2 C:0 D:2 F:0
  3. 计算 F 节点,更新入度: A:1 B:2 C:0 D:1
  4. 计算 C 节点,更新入度: A:1 B:1 D:0
  5. 计算 D 节点,更新入度: A:1 B:0
  6. 计算 B 节点,更新入度: A:0
  7. 计算 A 节点,计算结束有向有环图的计算
  2、有向有环图的计算
  解决了有向无环图的计算问题,如果此时把上图中B-C之间的箭头反向调换,情况就会变的截然不同起来。此时B-C-D之间组成了一个环。
  这时候依旧进行计算:
  1.  初始化,统计入度: A:1 B:1 C:2 D:2 E:0 F:0
  2.  计算 E 节点,更新入度: A:1 B:1 C:1 D:2 F:0
  3.  计算 F 节点,更新入度: A:1 B:1 C:1 D:1
  4.  没有入度为0的节点,开始迭代计算
  (迭代计算:把上一步的计算结果代入这一步的运算中去,经过多步这样的计算,可以得出一个更为接近的结果。)按需计算
  解决这种互相依赖的复杂单元格的运算时,除了图计算还可以采用按需计算的方法。在这里使用到的是calcOnDemand这个函数。这个函数的核心工作原理是:压栈并且计算所需要的节点内容,该节点可以是任意内容。
  以该图内容来说明这一计算的过程:这里选择A作为我们需要的节点压栈并计算A,需要计算B的结果压栈并计算B ,需要计算C的结果压栈并计算C ,需要计算E的结果压栈并计算E, E 计算完毕后出栈计算C,C计算完毕后出栈计算B,还需要计算D的结果压栈并计算D ,拿到C的结果,还需要F的结果压栈并计算F, F计算完毕后出栈计算D,D计算完毕后出栈计算B,B计算完毕后出栈计算A,A计算完毕后出栈栈空,计算完毕
  这个例子取了最复杂的A作为需求节点,如果需要D节点,变为D节点入栈,C节点入栈,E节点入栈,计算后出栈,C节点计算后出栈,F节点入栈计算后出栈,D节点入栈,这样就得到了正确的D的值,这种运算方式只计算需要的内容。图计算VS按需计算
  在这里对图计算和按需计算做一个对别,这两种算法在不同情况下效率不同。
  左图中是一个从上到下的累加,使用按需计算计算的很顺畅,从上向下按顺序计算即可,堆栈中存在的待计算元素不超过两个,按需计算比图的计算更加快。
  右图中是是一个逆向计算,上一行单元格的内容依赖下一行单元格的内容,按需计算需要计算1000步,这时按需计算会比图计算慢很多。
  总体来说,图计算比按需计算更加稳定,而按需计算在不同情况下会有不同的表现,实际使用中我们可以根据具体的使用场景采用不同的计算策略。脏值计算
  回到我们刚刚讲过的图中:
  在这个图中,如果此时修改了某节点的值,这个时候就需要根据传播途径,标记所有需要重算的节点。
  举例:修改了E的内容根据传播依次将E C B D A标记删去未标记的节点开始计算剩余的节点
  标记完成之后,我们就不再需要关注未标记节点,计算完成。
  整个过程如下图所示:
  拓展:关于运算内容几个问题
  已经介绍完计算链的全部内容,为了帮助大家更好地理解,这里有几个思考问题:示例中的图计算,可否可改用按需计算?可不可以先计算E的值,再标记并重算C B D A?根据传播途径标记需要重算节点的优势?
  解答部分:该图可以进行按需计算,因为按需计算和图计算都可以对图内容进行正确计算。该图中不可以先算E,然后重标CBDA,因为一旦我们一但先计算E,此时C依旧依赖E的内容,而C又不能先于E计算,这时ABCD节点数值都会变得不可靠,这个计算引用链就会被完全破坏。脏数据的处理中只对传播路径上的节点进行处理,在实际应用场景下,几百个单元格数据处理使,可以大大减少运算的内容。总结
  所有的单元格计算内容就全部为大家介绍完毕了,我们一起回顾一下本章节内容:计算链就是将一个个单元格计算串联起来,分为普通计算和迭代计算。而这里我们介绍了两种不同的计算方式——图计算和按需计算,在面对不同情需要选择采用不同的计算策略。计算链在整个计算过程中不像单元格的计算那么明显,但是却比单元格的计算更加复杂。
  在了解了计算公式如何进行词法、语法分析对公式进行快速运算,计算链是如何进行多单元格大数据量的处理,接下来将继续为大家介绍异步函数在前后算计算中的花式用法。
  看到这里了点个关注吧~后续本葡萄也会为大家带来更多严肃或有趣的内容。
  如果想了解更多相关内容,欢迎关注微信号"葡萄城社区"。

手机出货量暴跌三成,是贫穷限制了购买力还是创新乏力的必然后果手机已经成为了我们最不能离开的电子消费品,移动互联网的发达让手机成为了人们看新闻娱乐通信不可或缺的工具。曾几何时,对于年轻人来说,手机堪称年货,苹果甚至将年年换新作为了推销Appl分享两个好用的黑科技网站VirSCAN。orgVirSCAN。org是一项免费的在线扫描服务,它使用VirSCAN列表中指示的防病毒引擎检查上传的文件是否存在恶意软件。在上传您要检查的文件时,您可以查看扫OnlyampampampHome智能即热饮水机华为商城开启众测喝热水4月1日,OnlyHome智能即热饮水机在华为商城开启众测,正式发售价298元,众测价仅需199元。参与众测活动,幸运抽奖赢价值2199元的华为nova9SE价值999元的Only互联网教父张朝阳坐拥百亿却深陷抑郁症,如今觅得妙方治愈搜狐创始人兼CEO张朝阳,早在1999年就带领公司进入了全球财富五百强。在外人眼中,他无疑是成功的企业家。据他自己所说,作为把互联网带进中国的领军人物,他受到了社会广泛的认可和爱戴性价比家电分享!1。6万入手6款大家电,海尔美的华为轻松拿下前段时间刚搞定完新家的软装,只花了1。6万就把家里基本要用的6件家电给搞定了,里面还包括了海尔华为美的这些大牌。我个人在选购的时候有个习惯,就是除了产品的功能性以外,我还会注重它的如何组装一台电脑错误做法先把各个硬件装进机箱,然后才测试主板是否可用安装操作系统。这是新手最容易犯的一个错误。正确做法先测试主板是否可用安装好操作系统,然后把各个硬件装进机箱里。为什么要这样做?如能否成为下一个京豆神器,京东云无线宝AX6600雅典娜实测随着网络的普及,路由器几乎已经成为居家必备的产品了,俗话说工欲善其事必先利其器,一款好的路由器不但能让你最大的发挥网络的性能,还提供了强大的管理以及应用,以满足大众的需求,而随着云MIUI通过这5个设置,可以更加省电和提升流畅度,小米红米通用本文编辑今日头条作者维权骑士签约用户小俊技术分享独家原创制作未经授权严禁转载,发现抄袭者将进行全网维权投诉分享生活小妙招,享受科技新生活!大家好,欢迎来到今天的知识分享!我是你们的黑鲨5系列发布,用了三代骁龙芯,配置一览黑鲨出新了,看之前爆料还以为是两款机型,结果直接来了次三代骁龙同堂,推出黑鲨5黑鲨5RS和黑鲨5Pro三款机型黑鲨5搭载骁龙870处理器,采用三星FHD的AMOLED屏,支持144苹果智能戒指,用途广泛果粉之家,专业苹果手机技术研究十年!您身边的苹果专家随着科技的发展,市面上涌现出各种奇思妙想的智能设备,种类繁多五花八门,而智能穿戴在其中扮演了非常重要的角色。科幻电影中的未来世界微软上线微软电脑管家软件鞭牛士4月1日消息,据报道,近日,微软在国内推出了一款名为微软电脑管家的软件,目前该软件为测试版。据鞭牛士了解,微软电脑管家界面非常干净简洁,一共有五个功能界面,除了电脑体检病毒查
从0到千万级并发,阿里分布式架构的14次技术革新1概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术。让大家对架构的演进有一个整体的认知,文章最后汇总了一些架工业4。0进行时增强现实技术如何变革制造业资本实验室今日创新观察聚焦前沿科技创新与传统产业升级张珂说到增强现实,很多人可能首先会想到曾在一夜之间席卷全球,风靡世界的精灵宝可梦AR游戏。其实,无论虚拟现实,还是增强现实混合现淘宝双十一预售真的便宜吗?用便签提醒自己什么时候预售十月份马上就要过完了,在十一月份里即将迎来双十一购物节,随着近些年双十一活动的火爆,双十一又有了很多新玩法,比如双十一预购。淘宝双十一预售真的便宜吗?用便签提醒自己什么时候预售更科我和零跑的一年恋爱史去年11月因为零跑店长的热情,手一抖买了T03,目前已经行驶2W多公里了,没有出过啥毛病,日常员工代步,给公司省了不少油费啊,C11出来的时候原本没激发我买它的欲望,然后又是和店长解读零跑的全栈自研之路谁掌握了核心科技谁就能成为新时代的领导者朱总在2021全球汽车产业峰会发表主题演讲解读零跑的全栈自研之路,持续赋能朱江明参加2021全球汽车产业峰会共话智能电动新时代10月18日,选择zui艰难的路自研自造无论是硬件配置机械素质还是智能化的能力,处在1520万价位区间的C11怎么看都很能打,诸多越级表现所带来的性价比,可能会成为促成消费者买单的重要因素。零跑能在C11这款车型上将产品C11上搭载了零跑自研的驾驶解决方案C11上搭载了零跑自研的智能驾驶解决方案LeapPilot3。0,而驱动这套系统的核心大脑正是其自研的2颗凌芯01智能驾驶芯片。凌芯01让零跑暂时摆脱了对英伟达Mobileye等外零跑C11是冲击主流市场的产品按照零跑汽车之前的计划,该公司计划在2025年要达到80万辆的年销量,同时要超越特斯拉。80万辆仅仅依靠T03所在的A00级小车是不可能实现的,零跑必须有面向更主力市场的定位更高的越级de硬件素质与智能化能力在9月28日零跑C11的上市发布会上,被着重提到的一个词是越级,零跑也非常直白总结为是50万元级的期待,不到20万元就能实现。零跑汽车CEO朱江明标榜C11很可能是20万元以内zu零跑C11怎么看都很能打无论是硬件配置机械素质还是智能化的能力处在1520万价位区间的零跑C11怎么看都很能打目前,零跑汽车有三款量产车S01T03C11。S01因为车型定位以及自身产品不够突出,导致市场零跑汽车正式跃进2。0时代目前,依托全栈自研优势,零跑已实现电池电机电控在内的三电技术部件的全面自制,并将自动驾驶感知硬件自动驾驶算法和芯片,以及自动驾驶执行机构算法全线打通,为用户提供更加智能和便利的智慧