我需要一個16位唯一號碼。
我可以使用下面的兩個例子,它會生成更多獨特的數字嗎?哪個更獨特?
<?php>
$a=rand(1000000000000000,9999999999999999);
$b=rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
echo($a);
echo($b);
?>
我需要一個16位唯一號碼。
我可以使用下面的兩個例子,它會生成更多獨特的數字嗎?哪個更獨特?
<?php>
$a=rand(1000000000000000,9999999999999999);
$b=rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
echo($a);
echo($b);
?>
$a=rand(1000000000000000,9999999999999999);
創建範圍從千萬億到9999999999999999一個號碼,這使得共8999999999999999可能數目。
$b=rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
創建4個數字1000到9999,這使得總的8999 * 8999 * 8999 * 8999 = 6558084485964001號碼。
與第二種解決方案相比,第一種變體可能會產生大約37%的可能數量。
這將創建一個隨機的16位數字從0000000000000000至9999999999999999:
$c = sprintf('%016d',rand(0,9999999999999999));
$a
是更隨機它可具有全部爲零,除了在前述1
的放置 - 而$b
不能。
但是,這不是我的觀點
你$ B聲明中表明您的隨機數可以很好地爲一個字符串。
那麼爲什麼不擴大你的範圍填充零,使其仍然16位數字?
$a = str_pad(rand(0,9999999999999999), 16, "0", STR_PAD_LEFT);
這裏還有額外的1000000000000000個可能性。
我需要一個數字,最好不是一個字符串。 –
另外它應該是一個16位的數字 –
$ b在你的代碼中包含一個字符串。 –
你爲什麼不測試不同的方法? – shapeshifter
@Uchiha重要嗎? – shapeshifter