Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

#3631
No entiendo tu pregunta, eres muy escueto y poco claro.
Tampoco hace falta que cites cada vez todo mi mensaje previo, cita si lo precisas un trozo de texto específico que quieras resaltar por algo.

A ver, haciendo un poco de intuición a ver cuanto me equivoco...

En efecto fíjate que el bucle externo (del paso 1), va recorriendo numeros de la base numérica x. Al caso la base numérica ahora mismo es decimal, por eso empezamos en 0 (con K) y tras cada iteración lo incrementamos en 1) y lo que hacemos en el bucle interno es cambiar dicha base decimal a la base numérica de base 28, usando los símbolos propios que usa dicho alfabeto.

...por lo tanto si no te entendí mal, si... un valor decimal 152, 153, 154 son secuencias seguidas en decimal y por tanto también lo serán en la base de destino...
Aunque como dices 'tras sumar', ahí me cuesta interpretarte... obviamente a un resultaod de una suma se llega desde diferentes sumandos... pero no estoy seguro de qué me preguntas.
el paso 2, lo que hace es reutilizar las secuencias de 5 caracteres, para reutilizarlas y generar con elllas las ecuencias de 10 (¿acaso no hicimos en el paso 1 lo mismo, crear secuencias de 1 carácter y concatenarlos hasta tener los 5, pués aquí igual, es más rápido, un modo de entenderlo:
Imagina el hexadecimal, el valor ff acaso no es la concatenación de f + f y usando un solo carácter acaso no recorre los valores de 0 a 15?... Haz dos bucles en el primero recorrre de 0 a 15 y en el segundo haz lo mismo, concatena dentro de ese segundo , el valor actual del primer bucle con el actual del segundo bucle... así en el primer ciclo del bucle externo (el primero), obtienes dentro del segundo bucle (el interno), los valores 00, 01, 02... 0C, 0D, 0F.

Si tienes alguna duda, intenta explicarte más claro... si no voy 'pegando tiros a todo lo que semueve', en vez de apuntar a la diana...

-------------------------------------
NOTA: Hice una pequeña corrección, ya que al borrar un comentario que me parecía un poco confuso, por error me comí también una línea antes de enviarlo, y no me dí cuentas hasta más tarde.... por tanto repasa el pseudocódigo (del paso1), para asegurarte que lo has transcrito al lenguaje que utilices correctamente (es decir después de la corrección, que yo he hecho).
#3632
Programación General / Re: Motivacion
5 Abril 2017, 22:13 PM
Si encuentras que te falta motivación y sucede que no sea porque atraviesas una circunstancia personal difícil (por ejemplo la muerte de un ser querido), entonces lo más probable es que no te llene. Quizás hayas elegido esta rama por las perspectivas de trabajo, que te hicieron elegirla al pensar en un futuro laboral...

Yo soy de la opinión de que una persona debe dedicarse a aquello que le fascina, porque si no es así, acabará sufriendo en su 'trabajo'. Si tu trabajo es hacer lo que te gusta, buena parte de sufrimiento se ahorra uno...  y tus preocupaciones se limitarán a cuestiones económicas o lo cerca/lejos que te quede de casa, etc... cosas menores. La falta de motivación si sucede... con el paso del tiempo suele acabar en depresión.

Es bueno darse cuenta a tiempo si una profesión es o no es lo que esperas hacer el resto de tu vida laboral...
#3633
Cita de: Sapote en  5 Abril 2017, 18:01 PM

Hola muchas gracias por tu respuesta, te comento quiero conocer códigos validos que lleven la misma secuencia que los anteriores digamos asi códigos que pertenezcan a ese grupo de 50 millones.


Conseguí un par de muestras mas y ahora si conozco el alfabeto por el cual están compuestos.

2345679 B C D  F  G  H  J  K  L  M  N  P  Q  R  S  T  V  W  X  Y  Z

Si estás en lo cierto, parece que se omiten el 0 el 1 y el 8 y las vocales.
Pero sigeun siendo muchas más que 50 millones de combianciones.
tienes para secuencias de 10 caracteres 28 elevado a la 10 (28*28*28*28*28*28*28*28*28*28)= 2.961.96.766.695.424
Si insistes en que sólo sena 50millones y estás seguro de ello, es bastante probable que exista alguna restricción no esplícitada...
Si tienes una serie de secuencias suficientemente larga, haciendo una análisis de frecuencias de sobre las propias secuencias, podría deducirse que secuencias (de x caracteres) nunca se producen y por tanto concluir ciertas reglas de exclusión que aunque compliquen sacar las combinaciones posibles, reduzcan ostensiblemente su número a una cantidad tratable. 50 millones de secuencias son una cantidad tratable, para manejar en un fichero, digo, para probar como contraseña en un lugar remoto, será excesivo si el sistema está bien diseñado).

Cita de: Sapote en  5 Abril 2017, 18:01 PM
79JHZHZF2N
6YC9F2Z69X
DCRNQLPS4X
72GDNZ7NSH
YBG5QV9JQF
Q6DM74W7F4
YGWDSTP424
H49YCNZY4G
ZVZ56HTLD4
9L52BCKMBT
JGNTF9V9S6
KRCX5L4HTW
TJNZVTN6MB
LHVHBMDVYQ
KF2SQMJTNG
3KL9MDVNFH
SLJMF9S4KM
HQY5QJYX3
5K7JXH2ZXZ
XRGLQNKJSH
WBM2LBPWS6
En efecto, es estas secuencias no aparecen el 0,1,8,A,E,I,O,U

Cita de: Sapote en  5 Abril 2017, 18:01 PM
Lo que también he pensado es conociendo el alfabeto (charset) asignarle valores donde por ejemplo 2 equivale a 1 y 28 a Z y sustituir los valores del codigo pero no se si de plano sea una perdida de tiempo
2345679BC D  F  G  H  J  K  L  M  N  P  Q  R  S  T  V  W  X  Y  Z
123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
No, no solo no es una pérdida de tiempo, si no que es la forma correcta de hacerlo.

En realidad cuando hay combinaciones sin excepciones (dado un alfabeto), el alfabeto entero debe ser considerado como una base numérica, así en tu caso la base numérica es 27 (OJO: usa del 0 al 27, no del 1 al 28). De esa forma, puedes sacar las secuencia de uan forma muy veloz, o sacar la enésima secuencia de ese alfabeto, también dada una secuencia es relativamente fácil devolver la siguiente o la anterior (la nª + 1 o la nª-1...).

Así mete el alfabeto en un array...
alfabeto(0)= 2
...
Alfabeto(6)=9
Alfabeto(7)=B
...
Alfabeto(27)=Z

Dado que el tamaño de tus secuencias son 10 caracteres, fíjate que te vale generar todas las secuencias para solo 5 caracteres (algo muy accesible)...
Y finalmente en una combinación de 2 bucles iterar para tomar en el bucle interno, la contatenación de cada par de secuancias de 5 que está en activo en cada bucle.

En pseudocódigo:
Paso1: Obtener todas las combinaciones (con repetición) de 5 caracteres del alfabeto

numeroSec5= 28^5 (esto es: 17.210.368)
array alfabeto(0 a 27) (con los valores ya explicados más arriba)
Array Alfa5(0 a NumeroSec5-1) de cadenas de texto que contendrán 5 caracteres.

(k será el contador de la secuencia actual que se está construyendo)
n=0
iniciar bucle para k desde 0 hasta NumeroSec5-1
   v=k
   iniciar bucle para j desde 0 a 4 (5-1, un ciclo por cada caracter)
          n= (v mod 28)
         v = (v\28)  (división entera)
         concatenar detrás el valor obtenido:
         Alfa5(k)   = Alfa5(k)  concatena Alfabeto(n)
   fin bucle
   incrementar k
fin bucle


Paso2: Obtener todas las combinaciones de 10 caracteres usando las secuanias de 5 obtenidas en el paso1:

Array alfa10(0 a NumeroSec5-1) (igual de largo que el de Alfa5, 17millones es accesible en la memoria del equipo, y evitamos perder tiempo escribiendo a disco).
iniciar bucle para k desde 0 hasta NumeroSec5 -1
       SerieDerecha= Alfa5(k)
       iniciar bucle para j desde 0 a NumeroSec5-1
           Alfa10(j)= SerieDerecha concat Alfa5(j)  (alfa5(j) sería la serie que se contcatena a la izquierda)
           incrementar j
       fin bucle
       Hacer lo que quieras hacer con las secuencias obtenidas, luego serán sobrescritas...
       por ejemplo pasar el array a otro programa que hará con él 'lo que sea', o guardarlas a disco (pero al final tendrán un fichero gigantesco, aseguráste que tu lenguaje puede manejar ficheros del tamaño final. Cada secuencia son 10 caracteres+ salto de línea por claridad, si lo guardas en Unicode multiplica por 2, multiplica por el número de secuencias totales: Numerosec5 * Numerosec5
       incrementar k
fin bucle

Para que veas como funciona el código y que saca bien todas las secuencias, crea de prueba primero un alfabeto de 6-8 caracteres, y cambia los valores conforme al tamaño 3,4 caracteres de la semisecuencia, etc...
#3634
A los militares siempre les gustó cazar moscas a cañonazos. El caso es darse a notar...
#3635
¿Reversear?. no inventes palabras... el castellano tiene palabras para expresarse bien, no hay necesidad de inventarse una nueva. De hecho, la palabra Invertir sugiere lo que dices.

No acabo de enterarme de qué quiere shacer exactamente. No te explicas bien.

Haciendo un esfuerzo, podría llegar a entender que lo que quieres es: saber cuál es el alfabeto que se ha usado para generar determinadas secuencias? (¿ves que fácil es explicarlo bien, si es esta la pregunta?)
- Si es esto, se requieren suficientes secuencias para dar por seguro que contiene todos los caracteres del alfabeto. Se podría asumir que si todos los caracteres salen con igual probabilidad y dado un largo 10 de la serie de salida, y que esta sseries son generadas al azar, usando dicho alfabeto y ese largo, se puede asegurar que en tantas series como ((largoAlfabeto^2)/largo serie ) estarán contenidos todos los caracteres que componen el alfabeto. Por ejmplo Sean 40 caracteres los que componen el alfabeto, y sean 10 el tamaño de las series que se generan, y sean generadas las series de forma aleatoria: ((40*40)/10))= 1600/10. En 160 series generazadas al azar...
Si representamos por p la probabilidad de salir un valor en una serie p= 1/40, para que salgan los 40 necesitamos 40 p. Pero esto es teórico, por ello si lo elevamos al cuadrado, es bastante seguro que garanticemos que en efecto salgan todas. Como en cada serie salen 10, entonces ese resultado final, lo podemos dividir entre 10.
Luego 40^2= 1600, es decir habremos pedido 40 veces que salga la serie completa del alfabeto (que se compone de 40 caracteres), por tanto ocn 1600 caracteres tenedremos esa garantía de que han salido. Pero como lo tomamos en series de 10, esos 1600 caracteres quedan agrupados en 160 series de 10 caracteres cada una.

El 'charset', si llamas así al alfabeto, vale... si no, entiende que no importa el orden que se siga en el alfabeto. Si damos como alfabeto las letras A-Z + 0-9, +abcd (para tener 40caracteres), poco importa que el alfabeto esté en otro orden. 0-9, + A-Z, + abcd... la secuencia: ABCDEFGHIJ, será la secuancia nº1 en el orden del alfabeto primero y la secuencia nº x si el alfabeto sigue otro orden... ¿qué importa que lugar ocupe una secuencia, si nunca hablamos en términos de la secuencia nº x?

Si dispones del número de combinaciones posibles, puedes mirar si las combinaciones son sin o con reptición... viendo la serie: "WRVDNWNRKD", veo que tanto la R, como la N como la D y la W aparecen dos veces, luego se puede concluir que es con repetición (aunque podría perfectamente fijarse un máximo de repetición de caracteres)...
Ahora bien, la cifra de 50millones es una cifra muy baja, si fueran 36 caracteres (mayúsculas A-Z) + los números (0-9), para series de 10 cifras con repetición serían 10^36 = 3.656.158.440.062.976 muy lejos de esos 50millones de combinaciones.
50 millones parece una cifra más cercana para las combinaciones posibles sin repetición... pero vemos secuencias (más de 1) que tienen caracteres repetidos.

En fin, sin más datos parte de la presunción de que se usan todoas las cifras y todas las mayúsculas y sabiendo que la longitud de la serie son de 10 caracteres, obtén al menos 130series (36*36=1296), luego recorre todas las series y obtén la lista decaracteres únicos:

Paso 1:
Contar en una tabla la aparición de cada caracter, de las series recogidas...
array de serie: Series(0,1,2,3...)
Declarar array X(de 0 a 255) de tipo numerico
n=0 (primer índice en el array de series)
iniciar bucle por cada serie en series(n)
  i =0 (indice del caracter en la serie)
  iniciar bucle por cada caracter en la serie (sabemos que son 10, luego puede fijarse de 0 a 9
     x(serie.char(i))= x(serie.char(i)) +1
     incrementar i
  fin bucle de serie
  incrementar n
fin bucle se series


Paso 2:
Reconocer cuantos y cuales son los caracteres únicos:
iniciar bucle con k de 0 a 255
  Si x(k) es mayor que 0 luego
      incrementar CharUnicos en 1
      sacar por pantalla el caracter k
 fin si
 incrementar k
fin bucle
sacar por pantalla la cuenta de CharUnicos


...y si es alguna otra cosa lo que quieres, sé más espécifico, pero sobre todo sé claro... explícate bien, aunque necesites el doble de texto para hacerlo.

------

.p.d.: Si las series no se generan al azar (esto es si las secuencias son elegidas por los usuarios), no hay forma de saber cuantos caracteres forman el alfabeto del que se construyen, ya que probablemente siempre habrá caracteres que los usuarios no usen nunca o casi nunca. En ese caso tampoco importa mucho, si no se usan nunca, no habrá series que lo contengan lo que a efectos prácticos es los mismo que si el alfabeto careciera de ese carácter. Haciendo como digo, se tiene de modo muy certero los caracteres únicos que contiene el alfabeto. Aunque más exactamente sería decir los caracteres que 'aparecen' en las secuencias ("se usan" frente a "contiene" el alfabeto)).
#3636
Cita de: ostiatio en  3 Abril 2017, 18:56 PM
...tengo que conectarme a equipos que no estan en mi red, por lo que no me vale VNC, y si hay una forma no se como hacerlo.

He probado con Teamviewer, pero el problrma es que este el programa que uso para solucionar los problemas en remoto y si configuro los equipos para que se puedan conectar de forma "sigilosa",
.... tengo que cambiar la configuracion y me lleva un buen rato.

mmmm... pués yo dudo de la legalidad de la acción.

Si fuere como dices, que "el jefe tiene unas tiendas", yo no veo donde está el problema para que el "jefe" te deje las llaves de una/SU tienda (hoy, mañana de otra) e instales VNC o cualquier programa que se requiera, siendo como es el dueño de la tienda, también lo será del ordenador... y de los programas instalados.
Más aún, podrías ir incluso en horario de trabajo, el mismo "jefe", puede llamar al que lleve la tienda y decirle "hoy se pasará por ahí, el informático, para revisar el equipo, actualizar algunos programas y revisar la seguridad, por si hay virus, o simplemente lo que se dice habitaulmente: ' para una puesta a a punto del ordenador", etc..." puede contarles cualquier cuento, y mientras instalas lo que se precise.

Si no se hace así, me da por sospechar, y sospechando, ya no me creo nada... demasiado turbio y enrevesado. Cuando sumas: Excusa1 + excusa2 + excusa3 = trampas.
#3637
Pués eso decía engel lex, que si la imagen no se guarda segura y el acceso a la cámara tampoco fuere segura, un software podría tener acceso a las fotos que la propia cámara saque. Quedando entonces como un sistema de seguridad francamente lamentable. Restaría por saber si la seguridad con foto es obligatoria u opcional... Habrá que esperar a que saquen el modelo.

Por otro lado, piensa que no todo el mundo tiene facebook...
#3638
Java / Re: Dudas en metodos
2 Abril 2017, 01:49 AM
Equals es el nombre de uno de los métodos de la clase.
Lo que hace es comparar si el punto recibido (una instancia de esa misma clase), es igual que los valores alojados del punto actual (otra instancia).

cuando tu definas entonces dos puntos y le des valores, por ejemplo:
a.x vale 30
a.Y vale 96
Y tengas otro punto
b.X vale 47
b.Y vale 81
entonces podrías hacer: "si a.Equals(b) luego ...."
en este caso devolverá false, porque el punto 'a' es distinto al punto 'b', ya que el método Equals, evalúa los valores de X e Y de ambos puntos y encuentra que uno o los dos son distintos, y para devolver TRUE, deben ser iguales.

El método ToString, efectivamente convierte en texto los valores almacenados en X e Y, pero además los formatea metiéndolos entre paréntesis y separados por una coma, así, suponiendo que X vale 23 e Y vale 17, devolverá este texto: (23,17)
#3639
Me gusta más el tema oscuro, aunque ahora tendré que acostumbrarme a ver donde aparece cosa. Ya que algunas destacan bien en el azul por defecto, pero no es tan nítido en este color...
#3640
 :laugh: :laugh: :laugh: :laugh: :laugh: Jo... qué desastre, ni lamercillos hacen falta, basta una foto...

En fin seguimos con las medidas biométricas como sistema de seguridad. Ahora ya tienen tu foto (por lo menos el fabricante cuando quiera, la tiene y), todos aquellos a quienes dés acceso a las fotos de tu tf, porque es bastante problable que ni siquiera esa foto estuviere cifrada, ni alojada en un sitio seguro (habrán previsto un espacio de alojamiento en el hardware, solo accesible por el hardware, para guardar la foto?).
En cualquier caso y dando por hecho que sí, que está cifrada y es seguro su alojamiento... un servicio interpuesto entre la cámara y el envío de la imagen, podría capturar la nueva toma. ¿Se les habrá ocurrido crear una interrupción hardware, que determine que cuando esta ocurra, ningún software pueda tomar posesión del servicio de la cámara, para evitar que se interponga en medio???.

¿qué pasará si ahora un banco decide adoptar también el uso de la foto por parte del cliente para verificaciones de seguridad en el acceso a cajeros, cajas de seguridad, etc...?. Si ya tu foto, pulula por ahí... Tendrás que hacerte una operación de cirugía estética para que tengas una cara diferente para el banco?.

A Samsung, se le están acumulando últimamente fallos 'raros', si yo fuera ellos, ya estaría pensando en sabotaje... quizás tengan algún topo de la competencia.