是否有任何算法可以对字符串的字符进行混洗,以使每次混洗都返回一个唯一的组合,但如果我们知道它被混洗了多少次,则可以将其混洗回原始字符串?
这是我到目前为止所拥有的,但这不是我想要的。它只能洗牌 (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;
}