CN103473377A - 一种计算公式回圈点快速检测方法 - Google Patents
一种计算公式回圈点快速检测方法 Download PDFInfo
- Publication number
- CN103473377A CN103473377A CN2013104576538A CN201310457653A CN103473377A CN 103473377 A CN103473377 A CN 103473377A CN 2013104576538 A CN2013104576538 A CN 2013104576538A CN 201310457653 A CN201310457653 A CN 201310457653A CN 103473377 A CN103473377 A CN 103473377A
- Authority
- CN
- China
- Prior art keywords
- loop
- list
- computing formula
- formula
- operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种计算公式回圈点快速检测方法,具体为:1)读取所有计算公式的列表;2)判断列表不为空,则进行递归分析;3)将所有计算公式等号左侧都标识为左操作数,右侧标识为右操作数;4)将所有的左操作数放到一个列表中,递归循环到一个计算公式时,依次判断其所有的右操作数是否在左操作数列表中,如果在,则抽取左操作数代表的公式到新的计算公式列表中,以备下次递归使用;如果不在,则不作处理,继续下一个计算公式;5)当本次递归循环结束时,确认回圈点。本发明可有效解决计算机进行数据计算时进入死循环或将计算机资源耗尽的问题,能够提高计算机运行速度。本发明经过简单配置即可植入相关应用系统中,提高计算正确性。
Description
技术领域
本发明属于计算机领域,涉及计算机数据结构中的单向链表、双向链表和数学公式计算等领域所涉及的问题,具体涉及复杂计算公式回圈点快速检测方法。
背景技术
在实际业务系统中,经常遇到数据结果需要进行计算得出的情况。在计算公式中,并非所有的计算都为常量,有的为变量。而变量可能是其它公式的计算结果,但在定义其它计算公式时,就需要确定不引用到当前的计算公式,否则就会引起回圈,计算时会进入死循环或栈溢出等错误。为避免这种情况出现,需要在计算前就找到引起回圈点,如图1中粗线部分。
发明内容
本发明公开了一种计算公式回圈点快速检测方法,具体为:
1)读取所有计算公式的列表;
2)判断列表不为空,则进行递归分析;
3)将所有计算公式等号左侧都标识为左操作数,右侧标识为右操作数;
4)将所有的左操作数放到一个列表中,递归循环到一个计算公式时,依次判断其所有的右操作数是否在左操作数列表中,如果在,则抽取左操作数代表的公式到新的计算公式列表中,以备下次递归使用;如果不在,则不作处理,继续下一个计算公式;
5)当本次递归循环结束时,如果当前的左操作数列表为空,则表示有回圈,将组织好的计算公式列表分析,收集所有左操作数集合和右操作数集合,把左操作数在右操作数集合中出现的公式提取出,即可标识为回圈点。
进一步,当检测到有依赖回圈时,收集引起回圈的节点信息,整理后以异常形式抛出,应用系统检测到异常形式,捕获后打开异常信息,便可获知所需要的信息。
进一步,当检查到有依赖回圈时,将回圈信息收集整理,最后以参数形式返回,应用系统通过返回值来确定回圈位置。
其中,所述步骤2)的中断的条件有两个,一是所有公式检测完成,二是公式中出现异常回圈点。
其中,所述步骤3)中,所有右操作数可以为一个计算公式,且如不受计算机存储容量限制,理论上可无限嵌套。
本发明可有效解决计算机进行数据计算时进入死循环或将计算机资源耗尽的问题,能够提高计算机运行速度。本发明经过简单配置即可植入相关应用系统中,提高计算正确性。
附图说明
图1为存在回圈的数据结构示意图;
图2为正常的数据结构示意图;
图3为分析流程示意图。
具体实施方式
下面结合附图对本发明进行具体说明。
本发明的分析流程如图3所示。
1. 读取所有计算公式的列表。
2. 如果列表不为空,则进行递归分析。中断的条件有两个,一是所有公式检测完成,二是公式中出现异常回圈点。
3. 将所有计算公式等号左侧都标识为左操作数,右侧标识为右操作数,右操作数也可以为一个计算公式。
4. 首先将所有的左操作数放到一个列表中,递归循环到一个计算公式时,依次判断其所有的右操作数是否在左操作数列表中,如果在,则抽取左操作数代表的公式到新的计算公式列表中,以备下次递归使用。如果不在,则不作处理,继续下一个公式。
5. 当本次递归循环结束时,如果当前的左操作数列表为空,则表示有回圈。需将组织好的计算公式列表分析,收集所有左操作数集合和右操作数集合,把左操作数在右操作数集合中出现的公式提取出,即可标识为回圈点。
在实际应用中,对于检测到的回圈点可以通过多种机制来处理。
1. 通过抛出异常形式:当检测到有依赖回圈时,收集引起回圈的节点信息,整理后以异常形式抛出,应用系统检测到异常形式,捕获后打开异常信息,便可获知所需要的信息。
2. 通过返回值:当检查到有依赖回圈时,将回圈信息收集整理,最后以参数形式返回。应用系统通过返回值来确定回圈位置。
举例说明:如果有4个公式 a=b+c; b=d+e;d=f+g;g=a+c;左操作数集合分别为{a,b,d,g},右操作数集合为{a,b,c,d,e,f,g}。经过上述图3所示的流程分析,则会得出公式a=b+c和g=a+c之间存在回圈依赖的结论,以异常形式抛出。
Claims (5)
1.一种计算公式回圈点快速检测方法,其特征在于:
1)读取所有计算公式的列表;
2)判断列表不为空,则进行递归分析;
3)将所有计算公式等号左侧都标识为左操作数,右侧标识为右操作数;
4)将所有的左操作数放到一个列表中,递归循环到一个计算公式时,依次判断其所有的右操作数是否在左操作数列表中,如果在,则抽取左操作数代表的公式到新的计算公式列表中,以备下次递归使用;如果不在,则不作处理,继续下一个计算公式;
5)当本次递归循环结束时,如果当前的左操作数列表为空,则表示有回圈,将组织好的计算公式列表分析,收集所有左操作数集合和右操作数集合,把左操作数在右操作数集合中出现的公式提取出,即可标识为回圈点。
2.根据权利要求1所述的计算公式回圈点快速检测方法,其特征在于,当检测到有依赖回圈时,收集引起回圈的节点信息,整理后以异常形式抛出,应用系统检测到异常形式,捕获后打开异常信息,便可获知所需要的信息。
3.根据权利要求1所述的计算公式回圈点快速检测方法,其特征在于,当检查到有依赖回圈时,将回圈信息收集整理,最后以参数形式返回,应用系统通过返回值来确定回圈位置。
4.根据权利要求1-3任一项所述的计算公式回圈点快速检测方法,其特征在于,所述步骤2)的中断的条件有两个,一是所有公式检测完成,二是公式中出现异常回圈点。
5.根据权利要求1-4任一项所述的计算公式回圈点快速检测方法,其特征在于,所述步骤3)中,所有右操作数可以为一个计算公式,且如不受计算机存储容量限制,理论上可无限嵌套。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104576538A CN103473377A (zh) | 2013-09-30 | 2013-09-30 | 一种计算公式回圈点快速检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104576538A CN103473377A (zh) | 2013-09-30 | 2013-09-30 | 一种计算公式回圈点快速检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103473377A true CN103473377A (zh) | 2013-12-25 |
Family
ID=49798225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013104576538A Pending CN103473377A (zh) | 2013-09-30 | 2013-09-30 | 一种计算公式回圈点快速检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473377A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010023434A1 (en) * | 2000-03-17 | 2001-09-20 | Lipha | Computational data processing system and computational process implemented by means of such a system |
CN101908191A (zh) * | 2010-08-03 | 2010-12-08 | 深圳市她秀时尚电子商务有限公司 | 应用于电子商务的数据分析方法及系统 |
-
2013
- 2013-09-30 CN CN2013104576538A patent/CN103473377A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010023434A1 (en) * | 2000-03-17 | 2001-09-20 | Lipha | Computational data processing system and computational process implemented by means of such a system |
CN101908191A (zh) * | 2010-08-03 | 2010-12-08 | 深圳市她秀时尚电子商务有限公司 | 应用于电子商务的数据分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150095381A1 (en) | Method and apparatus for managing time series database | |
US20200125673A1 (en) | Learning thematic similarity metric from article text units | |
CN104090886A (zh) | 构建用户实时画像的方法及装置 | |
CN106325756B (zh) | 一种数据存储、数据计算方法和设备 | |
CN104699735A (zh) | 企业级数据中心的数据处理方法及装置 | |
CN104156197A (zh) | 微处理器以及微处理器操作方法 | |
US20130238939A1 (en) | Method for ranking analysis tools | |
CN103853654A (zh) | 网页测试路径的选择方法和装置 | |
CN105095381A (zh) | 新词识别方法和装置 | |
CN102298681B (zh) | 一种基于数据流切片的软件识别方法 | |
CN102169491A (zh) | 一种多数据集中重复记录动态检测方法 | |
CN102681936B (zh) | 一种针对金融系统测试结果的验证方法及装置 | |
CN114116013B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110427622A (zh) | 语料标注的评估方法、装置及存储介质 | |
US9483447B2 (en) | Method, device, and computer storage media for adding hyperlink to text | |
Kanda et al. | Extraction of product evolution tree from source code of product variants | |
CN114911865A (zh) | 一种区块链虚拟货币数据中台及虚拟货币数据处理方法 | |
CN105630680B (zh) | 一种随机测试程序生成方法 | |
CN103473377A (zh) | 一种计算公式回圈点快速检测方法 | |
CN106203753B (zh) | 软件运营中运营问题的流转方法和系统 | |
CN106407218B (zh) | 导航网页的检测方法和装置 | |
CN106934024A (zh) | 一种数据处理方法和装置 | |
CN103678642A (zh) | 一种基于搜索引擎的概念语义相似度度量方法 | |
CN106874243A (zh) | 基于字符串的公式处理方法及装置 | |
US20180197045A1 (en) | Method and apparatus for determining relevance between news and for calculating relaevance among multiple pieces of news |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131225 |