-1

すべてのシャッフルが一意の組み合わせを返すように文字列の文字をシャッフルするアルゴリズムはありますが、シャッフルされた回数がわかっている場合は元の文字列にシャッフルできますか?

これは私がこれまでに持っているものですが、私が望んでいたものではありません。(n/2)+1 回しかシャッフルできず、その後元の文字列に戻ります。

//scramble data systematicslly
function Scramble($contents)
{
    $fsize=strlen($contents);
    $m=intval($fsize/2);
    $buffer=$contents[$m];
    for($i = 1; $i < $fsize; $i++)
    { 
        if($i%2==0)
        {
            if($m+$i<=$fsize){$buffer.= $contents[$m+$i];}
            if($m-$i>=0){$buffer.= $contents[$m-$i];}
        }else
        {
            if($m+$i<=$fsize){$buffer.= $contents[$m+$i];}
            if($m-$i>=0){$buffer.= $contents[$m-$i];}
        }
    }    
    return $buffer;
}
4

1 に答える 1

-1

操作を実行する関数を作成します。これを行うと、元の文字列を見つけるプロセスがわかるので、整数をパラメーターとして受け取る別の関数を作成し、元の関数の逆をn回実行します。

于 2013-08-05T14:57:54.303 に答える