我正在尋找一種方法來使用文件路徑作爲輸入生成一個4位數的隨機數。我試圖爲我的機器上的每個軟件安裝賦予唯一的名稱,名稱是software_product_name
+ 4 digit random number
。有兩次安裝相同的軟件是非常罕見的,但如果是這種情況,我不想結束相同的名稱。我有一種不同的方式來獲取軟件名稱。如何在Perl中使用字符串作爲種子生成一個N位數的隨機數
有沒有一種有效的方法,我可以生成4位數的隨機數,這將導致不同的路徑數量不同?
我正在尋找一種方法來使用文件路徑作爲輸入生成一個4位數的隨機數。我試圖爲我的機器上的每個軟件安裝賦予唯一的名稱,名稱是software_product_name
+ 4 digit random number
。有兩次安裝相同的軟件是非常罕見的,但如果是這種情況,我不想結束相同的名稱。我有一種不同的方式來獲取軟件名稱。如何在Perl中使用字符串作爲種子生成一個N位數的隨機數
有沒有一種有效的方法,我可以生成4位數的隨機數,這將導致不同的路徑數量不同?
如果你考慮一下,你不能這樣做,你不應該這樣做。你想生成一些沒有碰撞的東西,所以你可以區分不同的安裝。您無法區分無限數量的可能路徑和四位數字。
這聽起來像你的軟件需要足夠聰明,不要吹走現有的目錄,並安裝在用戶定義的路徑。
或者,您只需生成任意隨機數並檢查它是否已被使用。所以你不在乎這個數字是什麼,你不需要任何輸入來生成它。
#!/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;
請幫助我們通過展示您的嘗試來幫助您。 – Zaid 2012-01-05 13:02:54
最簡單的方法是對路徑名稱進行散列,並將結果mod 10000. – 2012-01-05 13:03:29
爲什麼不使用遞增數字而不是隨機數字? – RobEarl 2013-08-24 09:59:58