
【计】 mutually-recursive definition
each other; mutual
【计】 recursive definition
互递归定义(Mutual Recursion)是计算机科学和数学中的核心概念,指两个或多个函数或数据结构彼此依赖、相互调用形成的递归关系。以下从汉英词典角度进行专业解析:
中文释义
互递归(hù dì guī):指多个函数或过程相互调用,形成递归链。例如函数A调用函数B,而函数B又调用函数A,构成循环依赖关系。《计算机科学技术名词》(第三版)将其定义为“两个或多个函数通过交叉调用实现递归” 。
英文释义
Mutual Recursion:A programming technique where two or more functions call each other in a cyclic manner to solve a problem. According to MIT Press's "Essentials of Programming Languages", it enables decomposition of complex tasks into interdependent subroutines .
def is_even(n):
return n == 0 or is_odd(n-1)# 调用is_odd
def is_odd(n):
return n > 0 and is_even(n-1)# 调用is_even
类型 | 互递归 | 普通递归 |
---|---|---|
函数数量 | ≥2个 | 1个 |
调用方向 | 交叉调用(A→B→A) | 自我调用(A→A) |
典型用例 | 语法分析、协同算法 | 阶乘计算、单链表遍历 |
权威参考:
- 中文定义来源:《计算机科学技术名词》第三版(科学出版社)
- 英文解析来源:Friedman, D. P. 《Essentials of Programming Languages》(MIT Press)
- 技术实现案例:Cooper, K. D. 《Engineering a Compiler》(Morgan Kaufmann)
互递归定义(Mutual Recursion)是指两个或多个函数或数据结构相互调用对方来完成定义的编程模式。这种递归形式的特点是函数之间形成循环依赖关系,彼此互为递归条件。
相互调用
例如,函数A在其定义中调用函数B,而函数B的定义中又调用函数A,形成闭环逻辑。
终止条件
互递归必须包含明确的终止条件,否则会导致无限循环或栈溢出。例如,通过参数递减到某个阈值来结束递归。
以判断奇偶数为例:
def is_even(n):
if n == 0:
return True
else:
return is_odd(n - 1)
def is_odd(n):
if n == 0:
return False
else:
return is_even(n - 1)
is_even
通过调用is_odd
实现,反之亦然。n == 0
。普通递归是单一函数自我调用,而互递归强调多个函数间的交叉依赖。例如,单递归计算阶乘只需一个函数,而互递归需通过协作完成更复杂的逻辑。
财产买卖契约磁盘高速缓存第三梭状芽胞杆菌段存储器二碳化锶耳外科浮浊液之破坏高音光电控制骨层互补正反器建交胶块加热面解散股份公司可变长度记录空气流动良性淋巴细胞性脑膜炎毛细管电现象柠檬酸铁前置词情形全体出席的区域级释放杆槽湿裹浴受累檀香木通商口岸