一种基于搜索框的计算方法及装置的制造方法_3

文档序号:8299163阅读:来源:国知局
图3所示,当用户输入“22+3-5”时,只在搜索框的下方提供该输入的内容的联想内容,而不会触发对该输入的内容的计算过程。当用户继续输入“=”时,则触发了对“=”之前输入的内容的计算过程。该用户输入的“22+3-5”的计算结果为“20”,则在搜索框中的“=”后显示“20”,从而完成一次对用户输入内容的计算及显示。
[0082]在触发对用户输入的内容的计算过程后,首先可将所述用户输入的内容解析为二叉树,该二叉树包括由至少一个操作符和操作数组成的树形层次结构。以用户输入的内容是l*2+logl0为例,该输入的内容可解析为如图4所示的二叉树,其中的”及“log”均可视为操作符,“ I ”、“2”及“ 10”均可视为操作数。
[0083]若根据二叉树规则无法将所述用户输入的内容解析成二叉树,例如用户输入的内容是“1*2申请loglO”,由于“申请”无法被识别为任何操作符,则“1*2”和“loglO”只能被解析成单独的二叉树,所以该输入的内容无法被解析成一个完整的二叉树,此时可以认为用户并不是需要对输入的内容进行计算,因此可将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
[0084]可选地,在步骤SllO中,所述二叉树对应的数学公式可由系统默认的浏览器调用计算器应用程序进行计算或由搜索引擎自带的计算模块进行计算。
[0085]其中,当移动终端在本地完成对该二叉树对应的数学公式的计算过程时,考虑到移动终端的计算能力以及用户的输入体验,本实施例可只对+、_、*、+、sin函数、cos函数、tan函数、ctg函数、阶乘函数(!)、幂函数Γ)、对数(log)以及括号等基本数学运算进行计算,自定义变量则可认为是不属于操作符和操作数的内容而不会被用于计算。
[0086]当移动终端将该二叉树对应的数学公式发送至云端,由云端(可选的采用阿拉丁平台)完成对该数学公式的计算过程时,由于云端的计算能力较强,除了可以对上述的基本数学运算进行计算以外,还可在云端设置一些模板,该模板可以包括特定几何图形的面积或体积的计算公式、特定倍率的倍角公式、整次数的二项式公式等,用于当用户输入的内容解析成的数学公式与任意模板匹配时,可直接计算出结果。
[0087]因此,对于如图4所示的二叉树,可以从根节点开始,先递归计算出其左子树节点和右子树节点的值,再根据数学运算计算出根节点的值即可,即整个计算过程是对二叉树的后序遍历。具体的计算过程包括:首先计算根节点“ + ”的左子树节点“*”,根据后序遍历的原则,该左子树节点表示的数学公式为“1*2”,则该左子树节点的值为“2”;然后计算根节点“ + ”的右子树节点“log”,根据后序遍历的原则,该右子树节点表示的数学公式为“loglO”,则该右子树节点的值为I ;最后计算根节点“ + ”的值,根据后续遍历原则,该根节点表示的数学公式是“2+1”,则该根节点的值为2。
[0088]通过该计算过程获得的结果“2”就是用户输入的内容对应的计算结果,将该计算结果显示在所述搜索框中,即完成了本次基于搜索框的计算。
[0089]在另一实施例中,如图5所示,所述基于搜索框的计算方法还可以包括步骤S120,当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
[0090]具体的,如图6所示的,当用户输入了用于启动计算的字符“=”后,又通过删除键将“=”删除,则会认为用户操作由获得计算结果改为对输入的内容进行搜索,因此将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。当用户进一步如图7所示的输入“*5”,并如图8所示的输入“=”时,则会认为用户从“22+3-5”到“*5”的内容均是为获得计算结果,因此将该数学公式“22+3-5”的计算结果“20”与“*5”再进行计算后,将最终的结果“ 100”显示在所述搜索框中。
[0091]本实施例所述的基于搜索框的计算方法,可以根据用于启动计算的字符,将用户输入的内容解析为表示数学公式的二叉树,并将该二叉树对应的数学公式的计算结果直接显示在搜索框中,使移动终端用户无需通过第三方应用即可获得所见即所得的计算结果,从而降低了操作成本,为移动终端用户提供了较好的用户体验。
[0092]根据本发明的另一方面,还提供了一种基于搜索框的计算装置。如图9中所示,该计算装置主要包括:用于接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析的装置(以下简称“接收解析单元“)800及用于若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中的装置(以下简称”计算显示单元“)810。
[0093]如图10所示,所述基于搜索框的计算装置的执行过程包括:
[0094]接收解析单元800首先监测用户是否输入了用于启动计算的字符,本实施例中优选“=”作为启动计算的字符。当检测到用户输入“=”后,根据二叉树规则对用户输入的内容进行解析。若接收解析单元800未检测到用户输入了用于启动计算的字符,则继续监测。
[0095]随后,计算显示单元810用于,若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中
[0096]计算显示单元810具体可用于若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。其中的二叉树可以是每个节点最多有两个子树的树形结构,并且包括完全二叉树、满二叉树、平衡二叉树等形式的二叉树均可用于本实施例的基于搜索框的计算装置。当任意一种用户输入的内容能够被解析成满足预定条件的二叉树时,即表示该二叉树能够被识别为数学公式,最后可由移动终端将该数学公式对应的计算结果显示在搜索框中。
[0097]可选的,在计算显示单元810中,所述预定条件包括:
[0098]条件1、二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符。
[0099]该条件I是为了对输入的内容进行计算时,能够将二叉树还原成数学公式,通过二叉树表示数学公式,能够为数学计算提供较高的效率,而如果采用直接对数学公式计算的方式,则需要对整个数学公式识别一遍后找到优选级最高的操作符,然后依次对优先级较低的操作符进行计算,因此采用二叉树表示数学公式能够提高计算效率,从而提升用户的使用体验。
[0100]条件2、每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
[0101]该条件2是为了区分操作符的优先级,从而在遍历二叉树的过程中即可对当前遍历的操作符进行计算,而无需比较多个操作符之间的优先级,进一步提升了计算效率。
[0102]当用户输入的内容解析成的二叉树同时满足条件I和条件2时,则可判断用户输入的内容是数学公式。
[0103]进一步可选的,所述预定条件还包括:
[0104]条件3,对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在节点的右子树节点。
[0105]该条件3是针对“ +等具有两个操作数的操作符时,该两个操作数不会因为设置在子树的位置错误而导致整个属性公式的计算结果错误。可以理解的,该两个操作数不仅可以分别设置在左子树节点和右子树节点上,任何能够对该两个操作数的位置进行区分的方式均可使用在本实施例中。
[0106]条件4,对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
[0107]该条件4是针对“sin”、“tan”、“log”等具有一个操作数的操作符时,该一个操作数不会因为设置在子树的位置不
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1