Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Powershell 打印给定元素的排列和组合的程序_Powershell - Fatal编程技术网

Powershell 打印给定元素的排列和组合的程序

Powershell 打印给定元素的排列和组合的程序,powershell,Powershell,我已经在PowerShell中编写了以下代码来显示给定字符串的排列和组合,但我无法通过递归函数实现它 函数交换1{ $a=“abc” $b=$a.ToCharArray() $c=$b.Length-1 $d=0 GetPer($b,$d,$c) } 函数GetPer{ 参数($list,$k,$m) [char[]$list1=$list[0] $k=$list[1] $m=$list[2] 若有($k-eq$m){ #写入主机$list1 }否则{ 对于($i=$k;$i-le 1;$i++

我已经在PowerShell中编写了以下代码来显示给定字符串的排列和组合,但我无法通过递归函数实现它

函数交换1{
$a=“abc”
$b=$a.ToCharArray()
$c=$b.Length-1
$d=0
GetPer($b,$d,$c)
}
函数GetPer{
参数($list,$k,$m)
[char[]$list1=$list[0]
$k=$list[1]
$m=$list[2]
若有($k-eq$m){
#写入主机$list1
}否则{
对于($i=$k;$i-le 1;$i++){
$a=$list1[$k]
$b=$list1[$i]
$a,$b=$b,$a
$k=$k+1
写入主机$list[0]
GetPer($list[0],$k,$m)
$a,$b=$b,$a
}
}
}
同样的逻辑,当我用C#写它时,它工作得很好

私有静态无效交换(ref char a,ref char b){
如果(a==b)返回;
a^=b;
b^=a;
a^=b;
}
私有静态void GetPermutation(char[]list,int k,int m){
如果(k==m){
控制台。写入(列表);
Console.WriteLine();
}否则

for(int i=k;i您的C#和PowerShell代码执行不同的操作。您在PowerShell中的不同位置输出,for
循环中的条件不同(
$i-le 1
vs
i)那么问题出在哪里?错误消息、输出不正确、根本没有输出,还有其他问题?请添加输入、期望输出和实际输出的示例。未按预期获得所需输出我正在获取一些垃圾数据。您可以发布一张显示您从C#代码中获得的期望输出的图像吗?这样we可以知道你的期望,而不是去推断。修改代码添加了c版本请帮助
PS C:\WINDOWS\system32> C:\Dorababu\Power Shell\Swapping1.ps1
a b c
a b c
a b c
function Swapping1 {
    $a = "abc"
    $b = $a.ToCharArray()
    $c = $b.Length-1
    $d = 0
    GetPer $b $d $c
}

function GetPer {
    Param($list, $k, $m)

    if ($k -eq $m) {
        Write-Host $list
    } else {
        for ($i = $k; $i -le $m; $i++) {
            $list[$k], $list[$i] = $list[$i], $list[$k]
            GetPer $list ($k+1) $m
            $list[$k], $list[$i] = $list[$i], $list[$k]
        }
    }
}

Swapping1