2012-01-05 2 views
0

파일 경로를 입력으로 사용하여 4 자리 난수를 생성하는 방법을 찾고 있습니다. 내 컴퓨터의 각 소프트웨어 설치에 고유 한 이름을 지정하려고합니다. 이름은 software_product_name + 4 digit random number입니다. 동일한 소프트웨어를 두 번 설치하는 것은 매우 드뭅니다. 그렇다면 동일한 이름으로 끝내고 싶지는 않습니다. 나는 소프트웨어 이름을 얻는 다른 방법이있다.Perl에서 문자열을 시드로 사용하여 N 자리 난수를 생성하는 방법

다른 경로에 대해 다른 숫자가되는 4 자리 난수를 생성 할 수있는 효율적인 방법이 있습니까?

+1

시도한 것을 보여줌으로써 도움을주세요. – Zaid

+2

가장 간단한 것은 경로 이름을 해시하고 10000이라는 결과를 얻는 것입니다. –

+0

임의의 숫자 대신 증분 숫자를 사용하지 않는 이유는 무엇입니까? – RobEarl

답변

0

생각해 본다면 그렇게 할 수 없으며 그렇게해서는 안됩니다. 충돌없이 무언가를 생성하여 다른 설치를 구별 할 수 있습니다. 4 자리 숫자로 무한 수의 경로를 구별 할 수는 없습니다.

소프트웨어가 기존 디렉토리를 날려 버리지 않고 사용자 정의 경로에 설치하지 않아도되는 것처럼 들리는 것 같습니다.

또는 임의의 난수를 생성하고 아직 사용 중이 아닌지 확인하십시오. 따라서 숫자가 실제로 무엇인지 신경 쓰지 않아도됩니다. 생성하기 위해 입력이 필요하지 않습니다.

2
#!/usr/bin/perl 

print "Content-type: text/html\n\n"; 

my @Chars = ('1'..'9'); 
my $Length = 4; 
my $Number = ''; 

for (1..$Length) { 
$Number .= $Chars[int rand @Chars]; 
} 

print $Number;