예제 #1
0
 function generarPalabrasN($n = 0, $k = 0)
 {
     $palabras = array();
     $palabras_validas = array();
     $cant_palabras = 1;
     $simbolos = $this->automata->getSimbolos();
     for ($i = $k; $i > 0; $i--) {
         $salida = '';
         ob_start();
         combina($simbolos, '', $i, 0);
         $salida = ob_get_clean();
         $salida = explode("\n", $salida);
         array_pop($salida);
         $palabras = array_merge($palabras, $salida);
     }
     $palabras[] = '';
     // evaluar palabras
     foreach ($palabras as $palabra) {
         if ($this->evaluarPalabra($palabra)) {
             $palabras_validas[] = $palabra;
             $cant_palabras++;
         }
         if ($cant_palabras > $n) {
             break;
         }
     }
     return $palabras_validas;
 }
예제 #2
0
    for ($i = 1; $i < $length; $i++) {
        for ($c = 0; $c < count($chars); $c++) {
            $m = $i - 1;
            for ($t = 0; $t < count($temp[$m]); $t++) {
                $value = $chars[$c] . $temp[$m][$t];
                $p = $c * count($temp[$m]) + $t;
                $combinations[$p] = $value;
                $temp[$i][$p] = $value;
            }
        }
    }
    return $combinations;
}
// $ será o valor inicial
$d = 0;
// $a será o valor final
$a = 9;
// $c será o número de casas retornadas
$c = 4;
$var = combina(range($d, $a), $c);
foreach ($var as $combina) {
    echo $combina . "<br>";
}
?>

		</div>
		
	</section>

	<?php 
include 'footer.php';
예제 #3
0
/**
 * Genera combinatoria para simbolos de manera recursiva
 *
 * @param array $simbolos arreglo con simbolos de entrada
 * @param string $combinacion la cadena correspondiente a la combinación
 * @param integer $k largo de la combinación
 * @param integer $j contador
 */
function combina($simbolos, $combinacion, $k, $j)
{
    $total_simbolos = count($simbolos);
    if (strlen($combinacion) == $k) {
        echo $combinacion . "\n";
    }
    if ($j < $k) {
        ++$j;
        for ($i = 0; $i < $total_simbolos; $i++) {
            combina($simbolos, $combinacion . $simbolos[$i], $k, $j);
        }
    }
}