-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 回答