범위는 1-62입니다. 나는 "암호를 해독"하여 원하는 순서대로 생성되도록 추측하고 싶습니다.번호 순서 변경
그래서, 예를 들면,
1-> 35 2-> 3- 19> 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
Sweeeeeet :-)
이것은 내가 고려하고있는 하드 코딩을위한 것입니다.정적 시드는 할 것이지만 처리가 너무 많아서 간단합니다. – BarsMonster
@BarsMonster : 처리 할 수있는 양은 얼마입니까? 그리고이 알고리즘의 어느 부분을 너무 비싸 보입니까? –
이것은 해석 된 언어로 초당 10,000 번 수행됩니다. 귀하의 솔루션이 성능면에서 적합하다는 것을 알지만 출력 = (입력 + 35) % 62와 같은 것을 갖고 싶지만 조금 더 무작위 적입니다. – BarsMonster