Foros del Web » Programando para Internet » PHP »

Generacion de palabras

Estas en el tema de Generacion de palabras en el foro de PHP en Foros del Web. Me ha surgido la curiosidad de generar un listado de palabras , por ejemplo A B C... AA AB AC... He estado mirando, crear un ...
  #1 (permalink)  
Antiguo 13/12/2009, 07:14
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Generacion de palabras

Me ha surgido la curiosidad de generar un listado de palabras , por ejemplo

A
B
C...
AA
AB
AC...

He estado mirando, crear un bucle de la a a la z es facil, simplemente tenemos que buscar el codigo


Código PHP:
for ($i=65;$i<=100;$i++) {  
  echo 
chr($i);           

Como se podria generar algo asi ? he pensado que combinando el bucle, con la propiedad strleng se podria lograr, pero no estoy muy seguro
  #2 (permalink)  
Antiguo 13/12/2009, 07:38
Avatar de Vitesse92  
Fecha de Ingreso: diciembre-2009
Ubicación: Internet
Mensajes: 145
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Generacion de palabras

un listado de letras mas bien esunestudio xD puesto que lo que conseguiras hacer sera crear palabras del tipo
ASKJFD
FLKDFJLJDSL
FJLDKJLKSDJLFS
(:
pero puedes intentarlo asi si aun quieres hacerlo:
Código PHP:
$i=65;
while (
$i<=99) {  
  
$i++;
  
$MaximoCaracteres=rand(5,10);
      while(
$MaximoCaracteres>strlen($CadenaFinal)){
        
$b=rand(65,100);
        
$CadenaFinal=$CadenaFinal.chr($b);
    }
    echo 
'<br />';
    echo 
$i.' - '.$CadenaFinal;
    
$CadenaFinal='';           

cabe mencionar que si lo quieres como un generador de contraseñas, mejor te recomiendo .md5, pero ya di mi aporte(:
Con este codigo se decide la longitud y luego se buscan los caracteres al azar...
si quieres buscar palabras "reales" puedes ingresar un lista en una base de datos y luego con la funcion rand() llamas al un id, y ahi tendras lo que necesitas.

Con md5
Código PHP:
$i=65;
while (
$i<=99) {  
  
$i++;
  
$MaximoCaracteres=rand(5,10);
      while(
$MaximoCaracteres>strlen($CadenaFinal)){
        
$b=rand(65,100);
        
$CadenaFinal=$CadenaFinal.chr($b);
    }
    echo 
'<br />';
    echo 
md5($i.' - '.$CadenaFinal);
    
$CadenaFinal='';           

Espero haber ayudado...

Última edición por Vitesse92; 13/12/2009 a las 07:44 Razón: Agregar Informacion, Y corregir un error de...
  #3 (permalink)  
Antiguo 13/12/2009, 10:18
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Generacion de palabras

Muchas gracias, el codigo es muy bueno, de todos modos, algo asi ya lo tenia hecho, buscaba algo mas esplicito, que generara todas las combinaciones de letras empezado por el A, como en numeros , 1 , 2 , 3 ...
  #4 (permalink)  
Antiguo 13/12/2009, 10:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Generacion de palabras

Queres generar todas las combinaciones posibles de letras con el abecedario? No se si te das una idea de la cantidad de combinaciones que pueden llegar a ser. Conoces el triangulo de pascal?
  #5 (permalink)  
Antiguo 13/12/2009, 10:53
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Generacion de palabras

Si, lo conozco, de todas formas , el numero no es algo que tenga importancia, no quiero un bucle infinito es solo por curiosidad, no se si se puede lograr usando solamente php
  #6 (permalink)  
Antiguo 13/12/2009, 11:04
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Generacion de palabras

Si, obviamente que se puede. Es tema de sentarse un rato y sacarlo. Como no se va a poder?

Aca tenes unas cuantas, espero q sirva
Código PHP:
<?php

$letras 
= array('a''b''c''d''e''f''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z');

$n count($letras);
for (
$i 0$i $n$i++){
       
$l1 $letras[$i];
       for (
$j 0$j $n$j++){
               
$l2 $letras[$j];
               for (
$k 0$k $n$k++){
                       
$l3 $letras[$k];
                       
$dom $l1 $l2 $l3 $ext;
                       print(
"$dom\n");
               }
       }
}

?>
  #7 (permalink)  
Antiguo 13/12/2009, 11:09
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Generacion de palabras

Que bueno eres :P , voy a mirar como esta montado, muy bueno

Ya lo he visto, lo que haces es un for, por cada letra nueva que quieres, pero asi empieza por 3 letras, si seguimos añadiendo mas for, seguiria añadiendo mas digitos, pero realmente con eso, solo haces una combinacion, en este caso 3 digitos.

Última edición por esunestudio; 13/12/2009 a las 11:17
  #8 (permalink)  
Antiguo 29/03/2010, 03:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Algo asi busco solo agregandole que por decir si se le pasa la combinacion

AB pueda decir que la siguiente es AC sin tener que recorrer todo otra vez .

Nuestra solucion las `permutaciones
http://www.forosdelweb.com/f13/permutaciones-183178/

Última edición por GatorV; 30/03/2010 a las 08:51
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:16.