Tema: Fuerza Bruta
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/06/2007, 08:19
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: Fuerza Bruta

Fijate si te sirve (lo hice hace mucho) sirve para encontrar todas las combinaciones de un abecedario a-z hasta encontrar una palabra (aquí es "papa")
Código PHP:
<?php
set_time_limit
(0);
function 
cargar($palabra){
global 
$longitud;
global 
$posibles;
global 
$asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for(
$i=0;$i<$longitud;$i++){
    
$asignar[$i]=$posibles;
}
}

function 
solucionado($palabra,$test){
if(
$test==$palabra)return 1;
return 
0;
}

function 
paltmp(){
global 
$longitud;
global 
$posibles;
global 
$asignar;
for(
$i=0;$i<$longitud;$i++){
    if(
count($asignar[$i])==count($posibles))return 0;
}
return 
1;
}

function 
ensayar($palabra){
global 
$longitud;
global 
$posibles;
global 
$asignar;
global 
$solucionado;
if(
$solucionado==1) return;
for(
$i=0;$i<$longitud;$i++){
if(
count($asignar[$i])!=count($posibles))continue;
for(
$j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(
paltmp()>0){
$paltmp=implode('',$asignar);
if(
solucionado($palabra,$paltmp)>0){
echo 
'<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo 
'<br />'.$paltmp;
}
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}

}
$algo='papa';
cargar($algo);
ensayar($algo);
?>