Programación para descifrar contraseñas
No puedes intentar iniciar sesión 50 veces.
Pero a juzgar por 50 intentos, solo hay 8 números como máximo.
Basado en el principio más simple, si la contraseña es la más corta y no hay números repetidos, aún se puede descifrar.
Dado que las tres contraseñas fueron mencionadas aleatoriamente en orden, los 50 inicios de sesión nos brindan información sobre el orden de las contraseñas.
La idea concreta es que, en función del orden en que aparece cada número de la contraseña, podemos construir un gráfico dirigido.
Tres números a la vez proporcionan información sobre tres nodos y dos variables en el gráfico.
De hecho, la escritura de datos se repite, lo que puede reducir la cantidad de datos.
Finalmente, si se forma un gráfico acíclico dirigido conectado.
El camino más largo que cubre todos los puntos del gráfico es la secuencia de nuestros cifrados.
Según el análisis de la superficie de rendimiento, el nodo se usa para almacenar información del nodo y el mapa se usa para almacenar la matriz de adyacencia.
A partir de 50 datos de registro se puede construir este gráfico acíclico dirigido.
Usando la biografía de Matlab, hice este dibujo y resolví la contraseña 7316289.
a =[319;680;180;690;129;620;762;689;762;318;368;710;...
720;710;629; 168;160;689;716;731;736;729;316;729;...
729;710;769;290;719;680;318;389;162;289;162; 718;...
729;319;790;680;890;362;319;760;316;729;380;319;...
728;716] ;
b = num 2 str(a);
Nodo=[];Nodo
map =[];? Gráfico de matriz de adyacencia
Para ii=1: tamaño (b, 1)
temp=b(ii,);
Para jj=1: 3 o más Nodo
si está vacío(find(nodo==temp(jj),1))
nodo=[nodo, temp(jj)];
tamaño = longitud (nodo);
mapa(tamaño, tamaño) = 0
Fin
Fin
mapa(nodo=; =temp(1), nodo == temp(2))= 1; conexión
mapa(nodo==temp(2), nodo == temp(3))= 1;?
Fin
bg = biografía (mapa, nodo);
Ver (BG);
Escribiendo aquí por ahora, lo anterior; Es que escribiré la ruta y el código del programa lentamente cuando tenga tiempo.