elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Píldoras formativas en seguridad de la información


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 148
111  Programación / .NET / Re: Variaciones de La Quiniela y números en base 3 en: 29 Mayo 2018, 04:23
elimino, el mensaje salió duplicado, al tratar de modificarlo... cosa de los deslogeos...
112  Programación / .NET / Re: Variaciones de La Quiniela y números en base 3 en: 28 Mayo 2018, 18:01
Citar
El objetivo del ejercicio no es combinar... se trata de obtener o saber qué posición ocupa X variación
...
La gracia está en que
equilicuá... https://foro.elhacker.net/abril_negro/abril_negro_spok_simple_production_of_keys-t468239.10.html
113  Foros Generales / Foro Libre / Re: "Estad preparados para la guerra", el panfleto que está llegando a todos los hog en: 28 Mayo 2018, 05:03
... ¿O acaso creéis que los ICBM con cabezas nucleares están ahí para decorar?...
el qué...? la mitad o más fueron desmantelados por acuerdos en los 90.
Sin embargo la gran mayoría estaban repartidos en los países integrantes del Pacto de Varsovia, que con la disgregación de la URSS, perdieron sus 'derechos' y se quedaron 'en casa' de cada páis...
Los restantes que aún quedaren, sin el debido mantenimiento durante 15-20 años estarán tan oxidados que no funcionarían y dudo que se hayan atrevido a andar toqueteándolos...

Y todo eso contando con que fueran auténticos y no de juguete (cartón piedra)...

Los que Rusia pueda tener, serán los que hayan fabricado en los últimos 10 años, si es que han fabricado alguno desde entonces...

De verdad Rusia, perdió todo su potencial de terror, cuando desapareció la URSS y sus misiles se largaron de Cuba.

Por supuesto sin importar lo previo Ucrania no es rival para Rusia...

Ni que decir que si lograran salir a la atmósfera unos pocos misiles nucleares (poco importa que sean o no balísticos), pierde todo el planeta... y no gana nadie, solo se podrá decir quien pierde más, más rápido...

Y olvidaros de que un misil balístico vuele a 1.000km de distancia desde el origen los sistemas de alerta temprana se disparan demasiado rápido, demasiados satélites apuntando a territorio enemigo escrutan a cada instante la firma de los misisles...

ya no se trata de interceptar un misil en el aire con puntería y velocidad, se trata simplemente de derribar un aparato por ondas, ya está probado y archidemostrado hace más de una década, la puntería ya no es un punto 3D de 1 metro cuadrado, es un arco (probablemente no mayor de 30º y no menor de 15º), realmente un cono (tridimensional) la distancia es enorme decenas de km... derribarse sería derribado, el problema es si a pesar de ello, la carga nuclear se activaría o no, si se activa, no importa demasiado donde caiga... (si hablamos de solo 1,2,3 sí, claro, si caen en el desierto o apartados en el mar, si hablamos de una docena ya ni así importa).
114  Programación / .NET / Re: Variaciones de La Quiniela y números en base 3 en: 28 Mayo 2018, 04:33
Es pura combinatoria...

Puedes mirar el siguiente enlace. Allí puse varios algoritmos equivalentes para generar permutaciones dado un alfabeto cualquiera del tamaño que se quiera (ciudando no desbordar memoria, etc...)
https://foro.elhacker.net/abril_negro/abril_negro_spok_simple_production_of_keys-t468239.10.html

Usando como alfabeto "1X2" con un tamaño de 'clave' de 14 (que son el número de las resultados para una apuesta).
115  Foros Generales / Foro Libre / Re: "Estad preparados para la guerra", el panfleto que está llegando a todos los hog en: 27 Mayo 2018, 22:00
mmm... mejor que los reparta Putin en Rusia.

Que yo sepa, nadie va a a ir allá (ni ganas) a guerrear... pero si se pasa de listo, puede que suceda así... y a día de hoy, la cosa no se saldraría como en todas las ocasiones previas, donde el frío extremo era un aliado contra las invasiones extranjeras.

La URSS era una potencia. Rusia es un potentado, algo muy ditintio incluso en el terreno militar.
116  Programación / Programación C/C++ / Re: Proyecto de Estructura de datos.... GRAFOS!!! :c en: 27 Mayo 2018, 21:00
Antes que nada, debes decidir/indicar, si es admisible que se revisite un nodo dos ó x veces, ó solo una como máximo... sino, por ejemplo sería valido la ruta:
A->C, B, D, H, F, C, L  ...Que, como se puede ver, revisita el nodo C dos veces...

Una vez decidido, y dando por supuesto que no se admitite revisitar nodos, puede tratarse como un automata finito determinista (AFD), donde el alfabeto es el conjunto de nodos (A, B, C, D, F, H, L) donde el estado inicial es A y el estado final es L, entonces puede establecerse el resto de nodos como estados de transición entre uno y otro.

Así desde A solo puede accederse a F y a C, lo que por ejemplo tratado como un autómata finito determinista , se señalaría en BNF como:
A = C|F
y desde C, se puede acceder a los nodos
C = A|F|B|L
El resto d eproducciones:
F = A|H
H = F|D
D = H|B
B = C|D
L = C  <--- esta no interesa, se trata de llegar a L, no pasar po él (es el estado final, no un estadode transición)
Como se puede ver, las producciones BNF, son las adyacencias de un nodo, la cantidad de nodos a los que se accede (por ejemplo A|F|B|L) son las aristas que salen de dicho nodo (en el ejemplo del nodo C, en C = A|F|B|L).

Entonces una vez en el estado inicial (A, pongamos estado 1), solo puede transitar hacia un estado 2, y desde un estado 2 a otro estado 2 o al estado de transición 3, si no tiene otro nodo que sea visitable que uno ya visitado, va al estado de error y por tanto ese camino no tiene solución, debe volverse un paso atrás cada vez que esto suceda... el estado de transición 3 (L), es el estado final, y señal de que admite ese 'token', para la gramática del alfabeto propuesto...
Puede tratarse como un automata de pila, porque un nodo no puede visitarse más de una vez...

A diferencia claro, de por ejemplo cuando se hace un compilador que en la entrada viene un texto y se trata de ver si un token pertenerce o no a la gramática, en tu caso haces algo distinto, la entrada es nula y tratas de averguar todas las salidas válidas (para una gramática libre de contexto serían incontables), pero para el caso de un grafo como el del ejemplo, es finito... ...de entrada se sabe que como máximo la longitud de palabra es la del alfabeto (ó menor)...
Por cuestiones de rendimiento, la pila realmente puede ser remplazada por un array de bytes donde cada letra del alfabeto tenga un valor true (no visitado ún, esto es, es Visitable), y una vez usado (pop si fuera una pila) su valor se ponga a false (nodo visitado, no visitable ya)... la velocidad de usar el array sobre una pila, está en el acceso aleatorio. al no exigir tener que extraer lo de encima de la pila... para acceder a un nodo.


Aquí un pseudocódigo casi completo... la función donde ba todo el trabajo lo dejo a tu esfuerzo...
Código:
funcion TodasLasRutasDeUnGrafo(string alfabeto) // sin repetir nodo.
    array bytes pila()  // realmente no es una pila, pero acomoda llamarlo así.
    array string prod= GetProducciones  //las producciones BNF, como un array de strings.

    // Albabeto = ABCDFHL  la primera letra debe ser el estado inicial
    Bucle k desde 2letra de alfabeto hasta última-1 //y la última debe ser el estado final.
        x = alfabeto(k)  //letra enésima del alfabeto
        c= caracter kesimo en alfabeto
        Hacer  
            pila = LlenarPila(alfabeto)   //vuelve visitable todos sus nodos.
            //pila(ASCII(c)) = FALSE // excepto la letra inicial de la que partimos esta vez,
            // pero esto mejor se traslada a la función invocada.            
            token = SiguienteToken(prod, pila, c)
            Si token <> ""
                imprimir "A --> " + token
            sino
                salir del bucle interno    
            fin si
        Repetir //mientras token distinto de nulo
    Siguiente

Código:
// el array es fijo según el grafo, y tal como se indico en las producciones.
// al caso se 'montan' en un array de strings,
array de String = Funcion GetProducciones  
    array de string p(0 a 255)

    //Cada valor está en la casilla cuyo ASCII representa y su contenido son la representación de cada nodo al que se accede desde él,
    // cada letra representa un nodo, al caso se han ordenado alfabéticamente, pero puede seguirse el orden en que aparecen sobre el grafo girando en uno u otro sentido, no importa...
    p(ASCII(A)) = CF
    p(ASCII(B)) = CD
    p(ASCII(C)) = ABLF
    p(ASCII(D)) = BH
    p(ASCII(F)) = AH
    p(ASCII(H)) = DF
    //p(ASCII(L))  
    
    devolver p
fin funcion

Código:
array de bytes = funcion LlenarPila(string alfabeto)
    array de bytes x(0 a 255)
    byte k

    Por cada letra en Alfabeto
        x(ASCII(letra)) = TRUE   //por ejemplo si letra es A: x(65) = TRUE, porque A es el carácter ASCII 65
    siguiente
    devolver X
fin funcion

Y la función final que lleva todo el trabajo, la dejo a tu esfuerzo... pero con algunas anotaciones.
Código:
enumeracion Estados
    ESTADO_ERROR = 0
    ESTADO_INICIAL = 1
    ESTADO_TRANSICION = 2
    ESTADO_FINAL = 3
fin enumeracion

// de entrada sabemos que el estado inicial es 1, y el primer carácter-nodo es A, que puede obviarse.
string = funcion SiguienteToken(array string P(),  array bytes Pila(), char letra)
   Estados  e= ESTADO_INICIAL
   string t = letra // la letra inicial, para esta vez.
  
   letra = siguiente letra en p(ASCII(letra)) // esto exige recursión ya que una producción engloba a otra.
   // Si pila(ASCII(letra)) = TRUE si el nodo de dicha letra es visitable
   //     t += letra
   //     Si letra = "L"
   //         e = ESTADO_FINAL
   //         devolver t
   //     sino
   //         e = ESTADO_TRANSICION
   //         marcar letra no visitable  pila(ASCII(letra)) = False
   //     fin si
   // sino
   //     volver atras, si es recursivo, implica devolver
   // fin si  
  
   // Si un nodo no es visitable, volver atrás, y si ya no quedan más nodos hacia adelante devolver false.  
fin funcion


Finalmente decirte que casi siempre verás una solución con un cuerpo más matemático, tirando de árboles... , la solución (incompleta) que te aporto, es... no más cercana, sino íntima a la programación... pués entra en la parte de la teoría de compiladores. Aunque al caso ha habido una discreta variación... a medias entre un análisis léxico y sintáctico.

Otra solución es recurrir a la combinatoria... generar (ir generando y probando sobre la marcha cada una si es un camino, esto es si el siguiente nodo es accesible desde el actual) todas las permutaciones sin repetición de largo máximo el alfabeto ABCDFHL (menos la letra inicial).
Como algoritmo es mucho más simple, pero es más lento en ejecución, especialmente si el alfabeto fuera mucho más largo, para este cortito, todavía no es significativo.
Código:
   string permutacion, ruta
    array de string p()  // el array de producciones que se generó el en otro pseudocódigo... traer la función aquí.
    por cada permutacion sobre el alfabeto //BCDFHL, nota que retiramos la A, pués siempre es el nodo inicial
      
        ruta = Substring(permutacion, hasta "L")  // obtenemos la subcadena hasta L, lo que tenga detrás sobra
        si EsCamino(ruta, p ) = TRUE
            imprimir "A" + ruta
        fin si
    siguiente

buleano = EsCamino(string ruta, array strings p)  // p son el array de las producciones generadas en el otro pseudocódigo
   char c = ruta(0)
   char n
    //... recorrer todo el string, viendo si desde la letra actual, hay conexión al otro nodo (siguiente letra)
    bucle para k desde 1 hasta largo de ruta
        n = ruta(k)
        si p(ASCII(c)) contiene n
            c = n
        sino
            devolver false
        fin si
    siguiente
    devolver TRUE   // c = "L"
fin funcion

// OJO: Alfabeto aquí deja fuera la letra A, no queremos que cambie de posición porque sabemos que siempre ha de ser el primero, no cabe en otra posición.
// alfabeto = "BCDFHL"
string = SiguientePermutacion(string alfabeto , string permutacion)
   ... calcula y devuelve la siguiente permutacion a la recibida. inicialmente permutacion = alfabeto
fin funcion
 
 
117  Foros Generales / Dudas Generales / Re: como puedo adivinar apuestas deportivas en: 26 Mayo 2018, 23:02
...una pequeña ayuda ...
...solo queria saber si habra algun truco para poder adivinarlo al 100%

...nada mas...
¿una pequeña ayuda?. ¿Truco?. ¿Adivinarlo al 100%?. ¿Nada más?.

¿Qué edad tienes?. ¿Has ido a la escuela?. No cabe otra posibilidad para semejante ~~~~~~~~~~
118  Programación / Java / Re: Problemas con los array en: 26 Mayo 2018, 22:55
No está bien pedir que "te miren" el código.

Señala que te falla,que precisa mejora, donde te pierdes, que no te sale, que te falta y  uno se ciñe justo al punto concreto...
119  Foros Generales / Noticias / Re: BitTorrent,a punto de ser adquirida por el fundador de una de las principales... en: 26 Mayo 2018, 16:54
Es pronto para aventurar nada, más sin detalles, pero "a bote pronto" parece como un movimiento de marketing, para dar vistosidad a su moneda y que así suba su uso (¿como la espuma?), y con ello se revalorice... única y última intención de la operación.
120  Foros Generales / Foro Libre / Re: VIDEO: Impactantes imágenes del Kilauea, en riesgo de inminente explosión en: 26 Mayo 2018, 16:30
Los pompeyanos no sufrieron, murieron al instante. De todas las formas de morir, aquella que sea instantánea, 'te libra del sufrimiento'. Y después de muerto, poco importa lo que ocurra con tu cuerpo, ya no sufre. Da igual si es calcinado, si es espachurrado por una roca gigante, momificado por adoradores o comido lentamente por termitas...

Otra cosa es que acabaras con quemaduras del volcán, y que sobrevivieras o que acabaras muriendo al tiempo a causa de dichas quemaduras o de la intoxicación de los vapores...
Esto es que es lo que les pasó a los pompeyanos, murieron sin siquiera intentar huir, murieron haciendo lo que estaban haciendo. Sus pulmones colapsaron pero no por la toxicidad sino por la elevada temperatura del ambiente aspirado (cientos de grados), la muerte sobrevino instantánea, 1-3 segundos. Una sola bocanada bastó, y si alguien fue consciente de lo que estaba pasando y se contuviera el respirar moriría abrasado, ese tal vez durara el doble de tiempo en morir y sufriera unos segundos siendo consciente. Muy probablemente antes de morir, perderían la consciencia. 
...no les dió tiempo a decir ni "mu", entre otras cosas por que el calor eliminaría tu lengua y tus cuerdas vocales, antes aún de terminar de abrir la boca del todo para decir "mu".
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 148
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines