Underc0de

[In]Seguridad Informática => Wargames y retos => Topic started by: Yuki on July 01, 2017, 08:07:03 am

Title: Reto - Descubre el valor oculto
Post by: Yuki on July 01, 2017, 08:07:03 am
El día de ayer un amigo me enseñó una muy interesante cuestión matemática. El reto que les propongo es escribir y postear un código que les resuelva este acertijo. Pueden usar el lenguaje que quieran.

(http://i.imgur.com/XIloJzj.jpg)

¡Suerte!
Title: Re:Reto - Descubre el valor oculto
Post by: adragon on July 01, 2017, 05:01:23 pm
A=2; B=3; C=6; D=8
ABCD = 2368
Title: Re:Reto - Descubre el valor oculto
Post by: Yuki on July 01, 2017, 11:53:02 pm
You are not allowed to view links. Register or Login
A=2; B=3; C=6; D=8
ABCD = 2368

Es correcto, pero el chiste es programar  :'(
Title: Re:Reto - Descubre el valor oculto
Post by: BlackBlex on July 03, 2017, 01:39:52 pm
Se que esta muy pegado al acertijo y no es dinámico, pero es la única forma donde encontré como resolverlo sin meterme en muchos líos.  ;D

Amo los juegos del Profesor Layton

Cramel:
Code: (Text) You are not allowed to view links. Register or Login
Var cmd:Consola

    Crear cmd
    Var a, b, c, d:Entero
    Const fijo = 4
    Var i, j:Entero

    i = 1
    j = 1

    Repetir
        a = i
        cmd.escribirLinea("a tomo el valor de: " + EntCad(a))
        d = a * fijo
        cmd.escribirLinea("d tomo el valor de: " + EntCad(d))
        Repetir
            c = j
            cmd.escribirLinea("c tomo el valor de: " + EntCad(c))
            Si ( (a+c) = d ) Entonces
                Salir Repetir
            FinSi
            j = j + 1
        MientrasQue j <= d
        b = (c/2)
        cmd.escribirLinea("b tomo el valor de: " + EntCad(b))

        Si ( ((a*b) = c) And ((c-b) = b) ) Entonces
            Salir Repetir
        FinSi

        cmd.escribirLinea("De nuevo" + CRLF)
        i = i + 1
    MientrasQue i <= 9
   
    cmd.establecerTitulo("Resultado final")
    cmd.escribirLinea("")
    cmd.escribirLinea("a: " + EntCad(a) + CRLF + "b: " + EntCad(b) + CRLF + "c: " + EntCad(c) + CRLF + "d: " + EntCad(d))
    cmd.pausarConsola()
Destruir cmd
Title: Re:Reto - Descubre el valor oculto
Post by: rush on July 03, 2017, 06:41:53 pm
Hola, creo que primero tuve que despejar unas ecuaciones jajaja, aunque creo que se puede resolver por álgebra lineal con alguna matriz, pero no me quise meter tanto, esta es mi solución aunque creo que es un poco mala ya que no es dinámica y peor aun mi while jaja.

Code: (c#) You are not allowed to view links. Register or Login
int a=0, b=0, c=0, d=0, i=0;
            int aux;
            bool case1= false, case2=false, case3=false, case4=false;
            Console.WriteLine("antes while");
            while(1 > 0)
            {
                i++;
                a = i;
                d = 4 * a;
                c = d - a;
                b = c / a;
                aux = a + c;
                if(aux == d)
                {
                    case1 = true;
                }
                aux = a * b;
                if(aux == c)
                {
                    case2 = true;
                }
                aux = c - b;
                if (aux == b)
                {
                    case3 = true;
                }
                aux = a * 4;
                if(aux == d)
                {
                    case4 = true;
                }

                if(case1 && case2 && case3 && case4)
                {
                    break;
                }
            }
            Console.WriteLine("Iteraciones: " + i);
            Console.Write("A: " + a);
            Console.Write("B: " + b);
            Console.Write("C: " + c);
            Console.Write("D: " + d);
            Console.ReadKey();