Necesito un algoritmo para armar cadenas en orden.

Iniciado por jdc, 9 Abril 2010, 03:14 AM

0 Miembros y 2 Visitantes están viendo este tema.

jdc

no pasas mmm

sino que sigues por ejemplo 0,1,2,3,4,5,6,7,8,9,1a.1b.1c...2a,2b,2c...3a, aaaaa ahi esta el error mira


0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d.... 10 11 12 13 14 15 16 17 18 19 1a 1b... s0 s1 s2 s3... zzzzz0 zzzzz1.... zzzzzx zzzzzy zzzzzz fin

Ahi?

luiggy2

#11
Más o menos puedes hacerlo así:


1. guardas en un array las letras/numeros
2. lees el último código generado
3. explotas el código
4. lees lo último que explotó
5. comparas con el array inicial.
   5.1.       si es igual a z, lo último explotado=0 y penúltimo ++
   5.2.       si no => lo último explotado ++
6. vuelves a unir lo explotado
7. guardas para poder leerlo la próxima vez.

Nota: La instrucción 5 se repetiría si el penúlimo es z, o el antepenúltimo, etc etc



No se si te he entendido / me entiendes


Saludos!
" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "

Shell Root

Joder, Janito, aun no me entiendes, jejejeje como fuck pasa de ser un numero a ser letra...
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

luiggy2

Código (php) [Seleccionar]


$letras=array("0","1","2"/*......*/"8","9","a","b","c",/*......*/"x";"y";"z");

/*
Desde $letras['0'] -> $letras ['9'] => son numeros
desde $letras['10'] -> $letras['¿?'] => son letras.
*/


No se si me entindes
" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "

jdc

Claro algo asi como dice luiggy2...

Piensa en fuerza bruta ;) generando palabras desde 1 a zzzzzz no trato de reemplazar letras por numeros ni al revez, sino buscar una forma de obtener en orden las posibles combinaciones teniendo como base la ultima cadena generada...

Seria facil desde 1 a 999999 pero feo :s ademas que se multiplican por muchisimo las posibilidades si lo piensas con numeros y letras

Castg!

que complicada la haces! jaja, tendiras que hacer lo que luiggy te dice y dwe ahi, con un bucle y un par de condiciones, las nuevas cadenas, o sino, escribir todas las posibilidades en una base de datos y de ahi manejarlo por id xD el problema es que serian un monton de datos.

y si usas mi metodo ? ajaja, es mucho mas facil!


Shell Root

#17
....

Pero creo que se podria generar automaticamente, pero joder, no entiendo cuando cambia de ser numero a ser letra...
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Castg!

Código (php) [Seleccionar]
<?php
function clave(){
$chars='7539846210qazwsxedcrfvtgbyhnu7539846210jmikolpPOIUYTREWQALKJHGFDSMNBVCXZ';
$l_chars=strlen($chars);
$l_max=8;
$clave='';
for(
$i=0;$i<$l_max;$i++){
$l_rand=rand(1,$l_chars);
$clave .= substr($chars,$l_rand,1);
}
return 
$clave;
}
?>


link al post completo!

para mi, despues comprobas si el valor devuelto no es repetido en la base de datos, y listo.

KrossPock

#19
Cita de: Alex@ShellRoot en 10 Abril 2010, 00:22 AM
....

Pero creo que se podria generar automaticamente, pero joder, no entiendo cuando cambia de ser numero a ser letra...

Pero sos duro de entender eh ¬¬, yo lei el primer post y ya lo entendi xD

Viste el sistema hexadeciamal? que va del 0 a la F, bueno el quiere hacer algo igual pero del 0 a la Z



Código (php) [Seleccionar]

<?php
$a
=1;

for(
$i=1;$i<=100;$i++){
echo 
"$a<br>";
$b=substr($a,-1);
$c=substr($a,0,-1);

if(
$b==9){
 
$a=$c."a";
}elseif(
$b=="z"){
 
$c++; 
 
$a=$c."0";
}else{
 
$a++;
}
}
?>



Me habra llevado unos 15' hacelo xD, lo que pasa es que no se me ocurria como, espero que te sirva ;)