Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/09/2011, 13:17
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Programa de Combinaciones en PHP

No sé a que te refieres con 364 veces...

con 10 dígitos se generan más de 59.000 combinaciones
con 11 dígitos más de 177.000 combinaciones
con 12 dígitos más de 531.000 combinaciones

ahora con 14 me imagino que pueden llegar a más de 1 millón , el código que encontré sólo me permite generar con 12 dígitos, espero que te sirva como un ejemplo, tampoco lo pienso optimizar. Pero en el manual de PHP en el área de arrays vi muchos ejemplos (buscando permutations combinations) salen varios resultados útiles.

Código PHP:
Ver original
  1. <?php
  2. function permutations($letters, $num) {
  3.     $last = str_repeat($letters{0}, $num);
  4.     $result = array();
  5.     while ($last != str_repeat(lastchar($letters), $num)) {
  6.         $result[] = $last;
  7.         $last = char_add($letters, $last, $num - 1);
  8.     }
  9.     $result[] = $last;
  10.     return $result;
  11. }
  12. function char_add($digits, $string, $char) {
  13.     if ($string{$char} != lastchar($digits)) {
  14.         $string{$char} = $digits{strpos($digits, $string{$char}) + 1};
  15.         return $string;
  16.     } else {
  17.         $string = changeall($string, $digits{0}, $char);
  18.         return char_add($digits, $string, $char - 1);
  19.     }
  20. }
  21. function lastchar($string) {
  22.     return $string{strlen($string) - 1};
  23. }
  24. function changeall($string, $char, $start = 0, $end = 0) {
  25.     if ($end == 0)
  26.         $end = strlen($string) - 1;
  27.     for ($i = $start; $i <= $end; $i++) {
  28.         $string{$i} = $char;
  29.     }
  30.     return $string;
  31. }
  32.  
  33. $arr = permutations("XYZ", 12);
  34. echo '<pre>';
  35. print_r($arr);
  36. echo '</pre>';

Fuente
En esta parte del manual hay algunas formas que te pueden dar ideas

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP