这是情景:
有像这样的字符串:
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
我有一个生成随机字符串的方法,其长度可变取决于字符变量:
public function generateCodes($length, $qty)
{
$codes = [];
if ($length > 0 && $qty > 0) {
for ($i = 0; $i < $qty; $i++) {
$code = '';
for ($i = 0; $i < $length; $i++) {
$code .= $characters[mt_rand(0, strlen($characters) - 1)];
if (!in_array($code, $codes)) {
$codes[] = $code;
}
}
}
}
}
我想要的是计算特定$ length的可能唯一代码。但是我怎么能达到这个目标呢?
这是我迄今为止的尝试 - 但我不认为重要的事情。
public function calculateCombinations($length)
{
$combinations = 0;
if ($length > 0) {
for ($i = 0; $i < $length; $i++) {
$combinations = $combinations + pow(2, $length -1);
}
}
return $combinations;
}
这个的正确公式是什么? 提前谢谢!