米尔嘉重新检查泰朵拉的笔记本。
“嗯……”
“我们通过分情况讨论求得了运行步数!”泰朵拉说。
听了泰朵拉的说明,米尔嘉轻轻合上眼睛。这时大家也都安静下来,连容易冒冒失失的泰朵拉也不出声地看着米尔嘉,而理纱——从一开始就很安静。过了一会儿,米尔嘉左右摆动着食指睁开眼睛。
“在这里——”不知为什么,米尔嘉好像很开心,“在这里,你们分情况分析了顺序查找算法。将情况分为在数列
中能找到
的情况,以及在数列
中无法找到
的情况。这没有问题。但是,我们可以将这两种情况
归纳
为一种情况。”
“将两种情况……归纳?”我有些疑惑。
泰朵拉见缝插针地举手。即便对方就在眼前,她也会举手提问。
“请、请问,归纳指的是归纳能找到
的情况与无法找到
的情况吗?”
“对。”米尔嘉说。
“但是,这两种情况下的输出也不一样,即便说要归纳也……”泰朵拉一边看着笔记本一边说。
“正因为无法归纳,才要分情况讨论的啊。”我补充道。
米尔嘉走到理纱旁边,悄声耳语几句。理纱露出一副嫌麻烦的表情,过了一会儿才在键盘上敲打起来。
“这并不是什么难以理解的问题,是这么一回事。”配合着米尔嘉的话,理纱把红色笔记本电脑的屏幕转向我们。
归纳能找到
与无法找到
两种情况后顺序查找算法的运行步数
“出现了新的变量
呢。”泰朵拉谨慎地说道。
“这是‘通过导入变量进行一般化’。”米尔嘉说,“一般化指的是将多种特殊情况归纳为一种情况。我们在这里导入变量
,根据两种情况,取不同的值定义该变量。”
“为什么用
这个字母来表示呢?”泰朵拉问。
“变量取任何名字都没问题,不过这里的
是‘Successful’的‘S’,表示成功找到了
。对应于‘在数列
中能找到
’这一命题的真与伪,变量
的取值分别为1比特的1与0。”
“原来如此……变量
的值为1时表示‘能找到
’,
的值为0时表示‘无法找到
’。”我说。
“通过增加一个变量,可以归纳多种情况。”米尔嘉说。
“我们归纳了多种情况……换句话说,我们就能用一个式子来表示顺序查找算法的运行步数了!”我说。
泰朵拉立刻开始计算。
顺序查找算法的运行步数