PHP计算字符串的组合取决于字符串
这是一个场景: 有这样的字符串:PHP计算字符串的组合取决于字符串,php,math,Php,Math,这是一个场景: 有这样的字符串: $characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 我有一个方法,可以生成一个随机字符串,其长度取决于变量字符: public function generateCodes($length, $qty) { $codes = []; if ($length > 0 && $qty > 0) { for ($i =
$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,$qty)
{
$codes=[];
如果($length>0&&$qty>0){
对于($i=0;$i<$qty;$i++){
$code='';
对于($i=0;$i<$length;$i++){
$code.=$characters[mt_rand(0,strlen($characters)-1)];
if(!in_数组($code,$code)){
$code[]=$code;
}
}
}
}
}
我想要的是计算特定$长度的可能唯一代码。但我怎样才能做到这一点呢
这是我目前的尝试,但我没有考虑重要的事情。
public function calculateCombinations($length)
{
$combinations = 0;
if ($length > 0) {
for ($i = 0; $i < $length; $i++) {
$combinations = $combinations + pow(2, $length -1);
}
}
return $combinations;
}
公共函数计算组合($length)
{
$combines=0;
如果($length>0){
对于($i=0;$i<$length;$i++){
$combines=$combines+pow(2,$length-1);
}
}
返回$组合;
}
正确的公式是什么?
提前谢谢 如果你只是想要唯一代码的可能数量,它将是n!但是如果你想得到可能的答案,你可以,它将打破这个系统,每个字母可以是36个选项中的一个,因此你将有36^l个可能的组合(其中l是长度)。现在,如果你想要所有长度小于l的可能组合,那么它是(Sum_i^l 36^i),这更像是一个数学问题,而不是一个编程问题。你应该学习一些关于组合的知识->是的,我知道这是一个数学问题,希望这里有人能把我推向正确的方向。那么apokryfos的建议有什么问题?如果它是错误的,您能提供一个小长度
的数字示例,例如3吗?