当前位置: 首页 > 专利查询>安静洁专利>正文

一种用于判定算术表达式是否为零的实现方法、装置及其应用制造方法及图纸

技术编号:36199430 阅读:11 留言:0更新日期:2023-01-04 11:52
本发明专利技术公开了一种用于判定算术表达式是否为零的实现方法,当处理器接收到含有m个数值的算术表达式,所述方法包括以下步骤:对每个数值进行扰动,并计算扰动后的算术表达式的值。若其中一个扰动后的算式表达式的值为零,则所述算术表达式的值不为零。若对所有数值扰动后,计算的值均不为零,则所述算术表达式的值为零。每次扰动时,只扰动或改变一个数值,其余m

【技术实现步骤摘要】
一种用于判定算术表达式是否为零的实现方法、装置及其应用


[0001]本专利技术主要涉及到处理器
,特指一种用于判定算术表达式是否为零的实现方法、装置及其应用。

技术介绍

[0002]计算机处理器有两大功能:数值科学计算与控制。其中后者以前者为基础。若前者发生错误,那么可能导致后者制造灾难。前者包含加减乘除四则运算,后者包含逻辑运算。但是,对于两个值相同的算术表达式来说,众所周知,在程序中,浮点运算的表示会有误差,一般不能直接比较两个数的大小,只能通过这样的形式来判断:比如,|a

b|<0.1
15
表示只要a与 b之间的距离小于0.1
15
,就认为是a等于b。这样会导致计算机处理器(1)在计算它们的差时,返回的值可能不为零;(2)进行相等判断时,也可能出错。
[0003]为了避免用距离来估算它们是否相等,不得不采用高精度计算来判断。但是,若采用高精度计算,则处理器又会遇到停机问题:
[0004]假设处理器要计算123456789+0.1
100

123456789。
[0005]在单精度下,计算机处理器会输出0;这时,处理器会猜想,它是否真正为0呢?也许它应该为很小的一个数,加大精度继续计算试试,于是,在双精度下计算,这时,输出还是 0;还是0?不妨在更高的扩展精度下计算,这时,结果还是0。继续在更更高精度下试还是不试呢?若试,若真的是0呢?那永远不会停机了,究竟什么时候该停机呢?这就是停机问题。简单一句话,停机问题就是:当处理器遇到输出为0情形时,它不知计算精度该设为多少,以方便计算出正确值。
[0006]基于以上问题,给出一个判断算术表达式是否为零的方法与装置具有重要意义。

技术实现思路

[0007]本专利技术要解决的技术问题在于:针对现有技术存在的技术问题,本专利技术提供一种原理简单、硬件开销小的用于判断算术表达式是否为零的实现方法、装置及其应用。
[0008]为解决上述技术问题,本专利技术采用以下技术方案:
[0009]一种用于判断算术表达式是否为零的实现方法,对于含有m个数值的算术表达式,所述方法包括以下步骤:
[0010]步骤1:对所有数值进行扰动,并计算扰动后的算术表达式的值。即不停执行下面步骤 1.1与1.2,除非执行某次步骤1.2后退出,否则直到对所有m个数值扰动并计算完毕才执行步骤2。
[0011]步骤1.1:对所述算术表达式中的其中一个数值进行扰动,而其余m

1个数值不变。
[0012]步骤1.2:计算扰动后的算术表达式,若值为零,则所述算术表达式的值不为零,然后整个过程结束。
[0013]步骤2:所述算术表达式的值为零,然后整个过程结束。
[0014]本专利技术所述步骤1的扰动包括:末位扰动、末后扰动、末位前扰动;
[0015]所述末位扰动为改变该数值的最后一位有效数字;
[0016]所述末后扰动为在不改变该数值指数的情形下在其最后一位有效数字后加若干位有效数字;
[0017]所述末位前扰动为改变该数值的最后一位有效数字前的若干位有效数字。
[0018]本专利技术中的扰动,也可以通过加上或减去一个数,达到上述扰动效果。
[0019]本专利技术所述步骤1中针对所有m个数值中的每个数值均采用同一种扰动方法扰动一次或连续扰动多次;或,
[0020]所述步骤1中针对所有m个数值中的每个数值随机采用一种扰动方法扰动一次或连续扰动多次;或,
[0021]所述步骤1中针对所有m个数值中的每个数值随机采用一种扰动方法扰动一次或连续扰动多次,或不同的两种或三种扰动方法连续扰动多次。
[0022]基于以上方法,本专利技术提出了该方法的一个应用:一种用于获得算术表达式的值的实现方法,其特征在于,对于一个在现有计算精度下值为零的算术表达式与结果要保留的有效位数n,所述方法包括以下步骤:
[0023]步骤1:运用前述的用于判定算术表达式是否为零的方法对所述算术表达式进行扰动判断。若所述算术表达式的值为零,则结束;否则执行步骤2。
[0024]步骤2:提高计算精度计算所述算术表达式的值。若结果为零或结果的有效位数小于n,则不停增加计算精度进行计算,直到得到满足要求的计算结果,即直到得到一个结果,其有效位数不小于n位。
[0025]基于以上方法,本专利技术提出了一种用于判定算术表达式是否为零的装置,包括扰动单元、计算单元、判断单元;其中,
[0026]所述扰动单元用于对每个数值进行扰动;
[0027]所述计算单元用于计算扰动后的算术表达式;
[0028]所述判断单元用于根据计算结果判断所述算术表达式的值是否为零。
[0029]基于以上方法,本专利技术还提出包括存储器和处理器的一种计算设备;所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现上述的方法。
[0030]基于以上方法,本专利技术还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的方法。
[0031]基于以上方法,本专利技术还提出一种用于判定算术表达式是否为零的方法在包括手机中的计算器的手持式计算设备与嵌入式设备中的应用。
[0032]基于以上方法,本专利技术还提出一种承运重量的车货匹配验证方法,包括以下步骤:
[0033]步骤1:验证运输工具预装载的所有n件货物的总重量数据与最大承运重量的差是否确实为0;
[0034]步骤2:若不为0,加大精度重新计算,将有效位数设为大于或等于k+1位,其中,k为原车货匹配系统中重量有效位数;重新计算直到其和达到或超过最大承运重量,得到y件货物;
[0035]步骤3:在新的有效位数下,对y件货物的重量和与最大承运重量的差是否为0进行扰动验证;若扰动后确定差不为0,则在更高精度或更多有效位数下重新执行步骤2,直到经
过扰动验证得到差为0;
[0036]步骤4:发动指令,命令将最终确定的y件货物装载在同一运输工具上。
[0037]本专利技术步骤1中,在同样的精度下,依次对n件货物的重量数据与最大承运重量数据进行扰动;若对其中1件货物重量数据扰动后,新的n件货物的重量数据的和与最大承运重量的差仍然为0,则断定n件货物的重量数据与最大承运重量的差不为0;若对n件货物的重量数据与最大承运重量数据均扰动了,并结果均不为0,则断定n件货物的重量数据与最大承运重量的差确实为0。
[0038]本专利技术还提出了上述方法在化学反应控制中的应用。
[0039]本专利技术还提出了上述装置、设备、计算机可读存储介质在承运重量的车货匹配验证或化学反应控制中的应用。
[0040]本专利技术还提出了上述方法不仅在十进制,还在除十进制外的任意进制的算术表达式中的应用。
[0041]本专利技术提出的方法及装置,可用于(1)判断给定算术表达式的值是否为某一个实数;(2)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于判定算术表达式是否为零的实现方法,其特征在于,对于含有m个数值的算术表达式,所述方法包括以下步骤:步骤1:独立对每个数值进行扰动,并计算扰动后的算术表达式的值,即重复执行步骤1.1与步骤1.2,除非执行某次步骤1.2后退出,否则直到对所有m个数值扰动并计算完毕才执行步骤2;步骤1.1:对所述算术表达式中的其中一个数值进行扰动,而其余m

1个数值不变;步骤1.2:计算扰动后的算术表达式,若值为零,则所述算术表达式的值不为零,然后整个过程结束;步骤2:所述算术表达式的值为零,然后整个过程结束。2.如权利要求1所述的用于判定算术表达式是否为零的实现方法,其特征在于,步骤1中的扰动包括:加上或者减去一个数进行扰动、末位扰动、末后扰动、末位前扰动;所述末位扰动为改变该数值的最后一位有效数字;所述末后扰动为在不改变该数值指数的情形下在其最后一位有效数字后加若干位有效数字;所述末位前扰动为改变该数值的最后一位有效数字前的若干位有效数字。3.如权利要求2所述的用于判定算术表达式是否为零的实现方法,其特征在于,所述步骤1中针对所有m个数值中的每个数值均采用同一种扰动方法扰动一次或连续扰动多次;或,所述步骤1中针对所有m个数值中的每个数值随机采用一种扰动方法扰动一次或连续扰动多次;或,所述步骤1中针对所有m个数值中的每个数值随机采用一种扰动方法扰动一次或连续扰动多次,或不同的两种或三种扰动方法连续扰动多次。4.一种用于获得算术表达式的值的实现方法,其特征在于,对于一个在现有计算精度下值为零的算术表达式与结果要保留的有效位数n,所述方法包括以下步骤:步骤1:采用如权利要求1

3之任一项所述的用于判定算术表达式是否为零的方法对所述算术表达式进行扰动判断;若所述算术表达式的值为零,则结束;否则执行步骤2;步骤2:提高计算精度计算所述算术表达式的值;若结果为零或结果的有效位数小于n,则不停增加计算精度进行计算,直到得到满足要求的计算结果,即直到得到一个结果,其有效位数不小于n位。5.一种用于实现如权利要求1

3之任一项所述的用于判定算术表达式是否为零的方法的装置,其特征在于,包括:扰动单元、计算单元、判断单元;其中,所述扰动单元用于对每个数值进行扰动;所述计算单元用于计算扰动后的算术表达式;所述判断单元用于根...

【专利技术属性】
技术研发人员:赵世忠安静洁
申请(专利权)人:安静洁
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1