Buscar temas sin respuesta | Ver temas activos |

Nuevo tema Responder al tema Índice general » Programacion: Vieja escuela » Lenguajes varios
Autor Mensaje
Desconectado 
 Asunto: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 25 Sep 2012 09:14 
poster a 512 kbps
Avatar de Usuario

Registrado: 06 Ago 2011 21:16
Mensajes: 695
No estoy pudiendo hacerlo.

Tengo esto que son las posibilidades (dentro de un límite: DATOS) cuando la variable de tipo texto es sólo una:
Código:
As = "DATOS";
N = -1;
// Repetición:
if (N+1 < As.length) {
    N = N+1;
    A = As.charAt( N );
}


"DATOS" serían los posibles símbolos (A, a...), eso y la repetición lo puse de una forma abreviada porque no me resulta tan complicado de llevarlo a código y además lo estoy poniendo en un "mapa" donde no debe ocupar mucho espacio.

Al final queda en el último símbolo.

Ok, y por otro tengo eso pero con 2 variables tipo número:
Código:
B = -1;
A = 0;
// Repetición:
if (A<11) {
    B = B+1;
    if (B == 11) {
        B = 0;
        A = A+1;
    }
}


A termina en 11 y B en 0.

Quisiera hacer eso, pero con variables tipo texto en vez de números.

No es unir las variables en otra, eso es otra cosa que lo voy a necesitar (pueden decirme cómo también), pero en principio no es eso.

Gracias.

_________________
Hojas, ramitas, etc, desparramadas es menos mugriento que apiladas, o quemadas o quemándose. Y menos cansador además.


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 25 Sep 2012 09:26 
LatinLover
Avatar de Usuario

Registrado: 20 Mar 2003 20:56
Mensajes: 5675
Ubicación: haedo
Busca código fuente para generar diccionarios (que se suelen usar para bruteforce) y ahí tenes la respuesta


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 25 Sep 2012 10:33 
poster a 512 kbps
Avatar de Usuario

Registrado: 06 Ago 2011 21:16
Mensajes: 695
Voy a vichar pero ya lo hice! :mrgreen:
Código:
As = "DATOS";
Bs = "DATOS2";
N = 0;
N2 = -1;
Repetición:
N2 = N2+1;
if (N2 == Bs.length) {
    N2 = 0;
    N = N+1;
    if (N == As.length) {
        stop ();
    }
}
A = As.charAt( N );
B = Bs.charAt( N2 );


Me entreveraba bastante el if del principio, ahora en principio se aplica sin condiciones pero llegado un punto simplemente se detiene.

_________________
Hojas, ramitas, etc, desparramadas es menos mugriento que apiladas, o quemadas o quemándose. Y menos cansador además.


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 25 Sep 2012 18:22 
poster a 512 kbps
Avatar de Usuario

Registrado: 06 Ago 2011 21:16
Mensajes: 695
Viché... hay demasiadas cosas que desconozco en el código que vi... o sea no lo entiendo. Independientemente de eso, me di cuenta que preciso que las variables puedan tener más de 1 dígito, así que ahora me hace falta eso. Primero siendo sólo 1 variable, luego siendo 2. Esto no es para "recuperar passwords", como leí por ahí (vaya forma de llamarle), es para esto:
Imagen

Es un camino o conjunto de "retos" o prácticas, que inician desde hacer un programa muy sencillo, de 3 posibles, y se van haciendo cada vez más complej@s. La idea es que los programas lleguen a encontrar acciones adecuadas para resolver situaciones, de ahí que tenga similitud con lo otro.

Eso es sólo 1 dibujo, no es que el programa se autoprograme (encararía 8D ), y hay una parte que aparece extendida porque es un botón y el mouse le estaba señalando. Hago esas extensiones para recordar más rápido lo que significa el "código" que uso.

_________________
Hojas, ramitas, etc, desparramadas es menos mugriento que apiladas, o quemadas o quemándose. Y menos cansador además.


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 26 Sep 2012 00:54 
I am the Architect
Avatar de Usuario

Registrado: 16 Nov 2002 04:09
Mensajes: 10577
algo asi?

Código:
[1]> (defun permu (lista)
  (if (null lista)
      '(())
      (apply #'append (mapcar #'(lambda (e) (mapcar #'(lambda (p) (cons e p)) (permu (remove e lista :count 1)))) lista))))
PERMU
[2]> (trace permu)
;; Tracing function PERMU.
(PERMU)
[3]> (permu '(a b c d))
1. Trace: (PERMU '(A B C D))
  2. Trace: (PERMU '(B C D))
   3. Trace: (PERMU '(C D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
   3. Trace: PERMU ==> ((C D) (D C))
   3. Trace: (PERMU '(B D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
   3. Trace: PERMU ==> ((B D) (D B))
   3. Trace: (PERMU '(B C))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
   3. Trace: PERMU ==> ((B C) (C B))
  2. Trace: PERMU ==> ((B C D) (B D C) (C B D) (C D B) (D B C) (D C B))
  2. Trace: (PERMU '(A C D))
   3. Trace: (PERMU '(C D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
   3. Trace: PERMU ==> ((C D) (D C))
   3. Trace: (PERMU '(A D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A D) (D A))
   3. Trace: (PERMU '(A C))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A C) (C A))
  2. Trace: PERMU ==> ((A C D) (A D C) (C A D) (C D A) (D A C) (D C A))
  2. Trace: (PERMU '(A B D))
   3. Trace: (PERMU '(B D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
   3. Trace: PERMU ==> ((B D) (D B))
   3. Trace: (PERMU '(A D))
    4. Trace: (PERMU '(D))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((D))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A D) (D A))
   3. Trace: (PERMU '(A B))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A B) (B A))
  2. Trace: PERMU ==> ((A B D) (A D B) (B A D) (B D A) (D A B) (D B A))
  2. Trace: (PERMU '(A B C))
   3. Trace: (PERMU '(B C))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
   3. Trace: PERMU ==> ((B C) (C B))
   3. Trace: (PERMU '(A C))
    4. Trace: (PERMU '(C))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((C))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A C) (C A))
   3. Trace: (PERMU '(A B))
    4. Trace: (PERMU '(B))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((B))
    4. Trace: (PERMU '(A))
     5. Trace: (PERMU 'NIL)
     5. Trace: PERMU ==> (NIL)
    4. Trace: PERMU ==> ((A))
   3. Trace: PERMU ==> ((A B) (B A))
  2. Trace: PERMU ==> ((A B C) (A C B) (B A C) (B C A) (C A B) (C B A))
1. Trace: PERMU ==>
((A B C D) (A B D C) (A C B D) (A C D B) (A D B C) (A D C B) (B A C D) (B A D C) (B C A D) (B C D A) (B D A C) (B D C A) (C A B D) (C A D B) (C B A D) (C B D A) (C D A B) (C D B A) (D A B C) (D A C B)
(D B A C) (D B C A) (D C A B) (D C B A))
((A B C D) (A B D C) (A C B D) (A C D B) (A D B C) (A D C B) (B A C D) (B A D C) (B C A D) (B C D A) (B D A C) (B D C A) (C A B D) (C A D B) (C B A D) (C B D A) (C D A B) (C D B A) (D A B C) (D A C B)
(D B A C) (D B C A) (D C A B) (D C B A))
[4]>

_________________
modulus: 13253789612153646607 (0xb7eeeb6e402e2e0f)
publicExponent: 65537 (0x10001)
privateExponent: 2448443333478481809 (0x21fa9e3d48a87f91)
prime1: 3701252873 (0xdc9ca309)
prime2: 3580892759 (0xd5701657)
exponent1: 1397888385 (0x53521581)
exponent2: 3879387 (0x3b31db)
coefficient: 1345965944 (0x5039cf78)


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 26 Sep 2012 11:24 
poster a 512 kbps
Avatar de Usuario

Registrado: 06 Ago 2011 21:16
Mensajes: 695
¿Eso lo escribió alguien o fue un programa? Todo lo que se escriba así es por un programa, pero supongo que entiendes la pregunta.

Necesito algo más simple, estoy 75% seguro de que puede serlo.

PD: Tu avatar siempre me desconcentra!!!

_________________
Hojas, ramitas, etc, desparramadas es menos mugriento que apiladas, o quemadas o quemándose. Y menos cansador además.


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 26 Sep 2012 15:37 
poster a 1 tbps
Avatar de Usuario

Registrado: 12 Ago 2004 11:00
Mensajes: 2354
Tal vez quieras mirar esto http://racket-lang.org/

_________________
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 30 Sep 2012 20:59 
poster a 1200 bps
Avatar de Usuario

Registrado: 26 Jul 2012 04:20
Mensajes: 14
No entendí bien qué querés hacer. ¿Permutacion será?. Osea:

ABC
ACB
BAC
BCA
CAB
CBA

Si es eso, tendrías que usar bucles anidados si son dos variables, o unirlas en una y usar una función recursiva.

_________________
» http://blastriff.blogspot.com


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 03 Oct 2012 21:33 
poster a 512 kbps
Avatar de Usuario

Registrado: 06 Ago 2011 21:16
Mensajes: 695
hStorm escribió:
Tal vez quieras mirar esto http://racket-lang.org/
Lo vi varias veces, nunca tuve suficientes ganas de prestarle tanta atención en parte porque a primera vista no veo algo que me haga decir wow ni algo parecido, tampoco sé tanto inglés ni cosas de programación ¿qué tiene de especial ese programa, en resúmen?

ArgNaSH:
Lo postergué. Pero es esto:
Que primero sea "A".
Luego "B".
Así sucesivamente hasta la "Z"
AA
AB
A...Z
y así sigue, hasta que alcance D dígitos.

Igual no sé bien qué tanto voy a necesitar, o sea, quizá necesite que la 1era letra sea mayúscula, esto era algo muy básico pero no sé cuánto debo ampliar esa base. Por ahora ya fue, estoy trabajando con números nomás.

_________________
Hojas, ramitas, etc, desparramadas es menos mugriento que apiladas, o quemadas o quemándose. Y menos cansador además.


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 03 Oct 2012 21:53 
I am the Architect
Avatar de Usuario

Registrado: 16 Nov 2002 04:09
Mensajes: 10577
pero bolooo, eso es contar en base 26 usando como dígitos las letras de A a la Z

_________________
modulus: 13253789612153646607 (0xb7eeeb6e402e2e0f)
publicExponent: 65537 (0x10001)
privateExponent: 2448443333478481809 (0x21fa9e3d48a87f91)
prime1: 3701252873 (0xdc9ca309)
prime2: 3580892759 (0xd5701657)
exponent1: 1397888385 (0x53521581)
exponent2: 3879387 (0x3b31db)
coefficient: 1345965944 (0x5039cf78)


Arriba
 Perfil  
 
Desconectado 
 Asunto: Re: Variar 2 variables texto abarcando todas las posibilidades.
NotaPublicado: 03 Oct 2012 22:02 
I am the Architect
Avatar de Usuario

Registrado: 16 Nov 2002 04:09
Mensajes: 10577
Código:
#!/bin/bash

for d3 in " " {A..Z}; do
        for d2 in " " {A..Z}; do
                for d1 in {A..Z}; do
                        echo ${d3}${d2}${d1}
                done
        done
done

_________________
modulus: 13253789612153646607 (0xb7eeeb6e402e2e0f)
publicExponent: 65537 (0x10001)
privateExponent: 2448443333478481809 (0x21fa9e3d48a87f91)
prime1: 3701252873 (0xdc9ca309)
prime2: 3580892759 (0xd5701657)
exponent1: 1397888385 (0x53521581)
exponent2: 3879387 (0x3b31db)
coefficient: 1345965944 (0x5039cf78)


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 11 mensajes ] 


  Imprimir vista Tema previo | Siguiente tema 

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


Todos los horarios son UTC - 3 horas


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
PC++ Style
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë