Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Recursion 如何证明递归算法的正确性? 私有静态void swapchar[]str,int i,int j{ char tmp=str[i]; str[i]=str[j]; str[j]=tmp; } 公共静态无效置换str{ permutestr.toCharArray,0,str.length; } 私有静态无效permutechar[]str,整数低,整数高{ iflow==高{ System.out.printlnstr; }否则{ forint i=低;i_Recursion_Correctness_Induction - Fatal编程技术网

Recursion 如何证明递归算法的正确性? 私有静态void swapchar[]str,int i,int j{ char tmp=str[i]; str[i]=str[j]; str[j]=tmp; } 公共静态无效置换str{ permutestr.toCharArray,0,str.length; } 私有静态无效permutechar[]str,整数低,整数高{ iflow==高{ System.out.printlnstr; }否则{ forint i=低;i

Recursion 如何证明递归算法的正确性? 私有静态void swapchar[]str,int i,int j{ char tmp=str[i]; str[i]=str[j]; str[j]=tmp; } 公共静态无效置换str{ permutestr.toCharArray,0,str.length; } 私有静态无效permutechar[]str,整数低,整数高{ iflow==高{ System.out.printlnstr; }否则{ forint i=低;i,recursion,correctness,induction,Recursion,Correctness,Induction,我实现了一个字符串排列的递归方法。但我有一个问题:如何用归纳法证明这个代码的正确性?我真的不知道。首先,你必须具体地说出你所说的正确性是什么意思,即,你想要检查代码的规范;另见。让我们假设这里的正确性意味着 置换的每个输出都是给定字符串的置换 然后我们可以选择对哪个自然数进行归纳。对于递归函数permute,我们可以选择低或高,或者它们的组合 在读取实现时,很明显,输出字符串中有一些前缀的元素没有改变。此外,该前缀的长度在递归过程中会增加,因此剩余的后缀(其长度为高-低)会减少。因此,让我们在假

我实现了一个字符串排列的递归方法。但我有一个问题:如何用归纳法证明这个代码的正确性?我真的不知道。

首先,你必须具体地说出你所说的正确性是什么意思,即,你想要检查代码的规范;另见。让我们假设这里的正确性意味着

置换的每个输出都是给定字符串的置换

然后我们可以选择对哪个自然数进行归纳。对于递归函数permute,我们可以选择低或高,或者它们的组合

在读取实现时,很明显,输出字符串中有一些前缀的元素没有改变。此外,该前缀的长度在递归过程中会增加,因此剩余的后缀(其长度为高-低)会减少。因此,让我们在假设low可能有用的情况下,对high-low进行归纳: