私は 1 から 62 の範囲の数字を持っています。それらを「暗号化」できるようにしたいので、それらが何らかの順序で生成されたと推測するのは困難です。
したがって、たとえば、いくつかのマッピングである必要があります
1->35 2->19 3->61 ...
1 対 1 のマッピングで、100% リバーシブルです。
マッピングをハードコードすることはできますが、それよりも数値を引数として取り、1 ~ 62 の範囲の数値を生成し、重複を生成しない数式のような数学的なソリューションを好むでしょう。この式が存在する可能性はありますか?
履歴のために、検証スクリプト:
<?
$test = array();
$val = 37;
for($i=0;$i<62;$i++)
{
if($test[($i*$val)%62])
{
print("Collision: $i ".$test[($i*$val)%62]."<br/>");
}
$test[($i*$val)%62] = $i;
print("$i => ".(($i*$val)%62)."<br/>");
}
?>
アップデート:
これらの回答のおかげで生成された ID は次のとおりです。
qpOLHk
NMb84H
aI740D
x5urn0
UsROKn
hPeb7K
EcByu7
1zYVRu
oWlieR
LjIFBe
8G52YB
v3splY
SqPMIl
fNc95I
Cazws5
ZxWTPs
mUjgcP
JhGDzc
6E30Wz
甘い :-)