是否有任何算法会对字符串中的字符进行洗牌,以便每个shuffle返回一个唯一的组合,但如果我们知道它被洗牌了多少时间,那么它可以重新转换回原始字符串?
这是我到目前为止所做的,但这不是我想要的。在它返回到原始字符串
之后,它只能刷新(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;
}
答案 0 :(得分:0)
创建执行操作的函数。如果你这样做,你知道这个过程,所以要找到原始字符串,创建另一个以整数作为参数的函数,并执行与原始函数相反的 n 次。