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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ... 235
851  Seguridad Informática / Hacking / Re: Whatsapp en: 29 Agosto 2016, 19:41 pm
Hola, la única forma en la que se me ocurre es... con alguna APP modificada que se salte el proceso de Generacion de claves y a la vez tenga la forma de Cargar las claves existentes en el otro dispositivo.

La versión WEB funciona si y solo si el Celular esta encendido y conectado a Internet, usando a este mismo como "proxy" para enviar y recibir los mensajes mostrados en la versión WEB.

Si te interesa aprender de Criptografia:

https://foro.elhacker.net/criptografia-b56.0/

Y aqui un tema que habla sobre el whatsapp incluyendo un PDF de como funciona su criptografia:

https://foro.elhacker.net/criptografia/whatsapp_criptografia_endtoend-t450526.0.html

Saludos!
852  Seguridad Informática / Hacking / Re: Whatsapp en: 29 Agosto 2016, 19:29 pm
Lo hace por medio de claves criptograficas

Saludos!
853  Programación / Programación C/C++ / Sorteo/Loteria Simulaciones y cambios de Variable en: 29 Agosto 2016, 18:36 pm
El siguiente codigo simula un Sorteo/Loteria 10 Millones de veces tomando 30 muestras de estas simulaciones obtenemos un Valor de veces que se gano el sorteo.

El jugador elige un numero y en cada ciclo se sortean otro Numero si el numero es igual al del jugador este GANA.


Se realizan 2 Tipos de Sorteos:

  • Uno donde el jugador conserva el MISMO numero todas las simulaciones.
  • El otro donde el jugador CAMBIA el numero en cada simulación

Salida Obtenida en 4 ejecuciones:

Código:
Total de veces ganador CON cambio de Variable 30636/(300000000 Sorteos)
Total de veces ganador SIN cambio de Variable 27675/(300000000 Sorteos)
Total de veces ganador CON cambio de Variable 30396/(300000000 Sorteos)
Total de veces ganador SIN cambio de Variable 36592/(300000000 Sorteos)
Total de veces ganador CON cambio de Variable 30700/(300000000 Sorteos)
Total de veces ganador SIN cambio de Variable 36890/(300000000 Sorteos)
Total de veces ganador CON cambio de Variable 30635/(300000000 Sorteos)
Total de veces ganador SIN cambio de Variable 27460/(300000000 Sorteos)

Si Observamos en total son 300 Millones de simulaciones 2 veces en cada ejecución, si vemos el "promedio" se mantiene mas o menos constante cuando SI CAMBIA la variable.

y el "promedio" se varia entre ejecuciones cuando NO CAMBIA la variable.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4.  
  5. #define MUESTRAS 30
  6. #define SIMULACIONES 10000000
  7. #define MAX 60000
  8.  
  9. int main() {
  10. register int i = 0,j = 0;
  11.  
  12. int elegido,premio, contador = 0;
  13. srand(time(NULL));
  14.  
  15. //Sorteos con cambio de Variable
  16. j = 0;
  17. while(j < MUESTRAS){
  18. i = 0;
  19. while(i < SIMULACIONES) {
  20. elegido = rand() % MAX; // La variable elegida cambia en cada sorteo
  21. premio = rand() % MAX;
  22. if(elegido == premio) {
  23. contador++;
  24. }
  25. i++;
  26. }
  27. j++;
  28. }
  29. printf("Total de veces ganador CON cambio de Variable %i/(%i Sorteos)\n",contador,MUESTRAS*SIMULACIONES);
  30.  
  31.  
  32. //Sorteos SIN cambio de Variable
  33. j = 0;
  34. elegido = rand() % MAX; // La variable no cambia
  35. contador = 0;
  36. while(j < MUESTRAS){
  37. i = 0;
  38. while(i < SIMULACIONES) {
  39. premio = rand() % MAX;
  40. if(elegido == premio) {
  41. contador++;
  42. }
  43. i++;
  44. }
  45. j++;
  46. }
  47. printf("Total de veces ganador SIN cambio de Variable %i/(%i Sorteos)\n",contador,MUESTRAS*SIMULACIONES);
  48. return 0;
  49. }

Esto va de la mano con la siguiente pregunta:

¿Es bueno cambiar siempre de variable?

Tema relacionado:

Demostracion del problema de Monty Hall

Saludos
854  Programación / Programación C/C++ / Re: Tabla ASCII en C++ caracteres de control en: 29 Agosto 2016, 16:41 pm
Ya vi el problema, acabo de probar el siguiente codigo en una maquina con Windows 10

Código
  1. #include<stdio.h>
  2.  
  3. int main() {
  4. int i = 1;
  5. while(i < 256) {
  6. printf("\t%c",i++);
  7. }
  8.  
  9. }

Y el problema esta en la FUNETE del CMD, por default (En mi sistema) tiene Lucida Console, cambie la fuente a "Fuente de Mapa de bits" y ya aparece correctamente los caracteres que buscas

Saludos!
855  Programación / PHP / Re: La imagen se sube a la carpeta pero no sube nada a la base de datos en: 29 Agosto 2016, 15:35 pm
ya te respondieron!

Esta mal tu query..
Y si se hace asi, se guarda el archivo en X carpeta y el nombre del archivo en la base de datos.

Saludos
856  Comunicaciones / Redes / Re: Con ping, sin internet. Ayuda! en: 29 Agosto 2016, 15:31 pm
A que direccion le haces ping

Recomiendo el DNS de Google

Código:
ping 8.8.8.8


Suena que tiene s problemas de Resolucion DNS prueba:
Código:
nslookup www.google.com
Te deberia de devolver la direccion IP DE GOOGLE
857  Foros Generales / Noticias / Re: «Youtubers», «bloggers» y el negocio de la publicidad engañosa en: 29 Agosto 2016, 15:17 pm
Si las personas no se dejaran influenciar tan fácilmente esta no seria noticias. Pero la culpa no es de nadie...

El sistema economico en donde vivimos obliga a las empresas a buscar vender mas.

Nuestra necesidad de OCIO nos lleva a comprar mas cosas que no necesitamos


Saludos.
858  Programación / Programación C/C++ / Optimizar evaluación de juego de TATETI en: 29 Agosto 2016, 14:56 pm
Siguiendo con el tema de :

[C] Duda TATETI

en ese tema puse un codigo para Generar un Arbol de N niveles apartir de una jugada inicial

Ahora toca evaluar todos los nodos (Juegos) para asi poder decidir el mejor movimiento

Dada las siguientes definiciones y estructuras:

Código
  1. #define UNKNOW 0 //Nobody win yet
  2. #define O_WIN 1
  3. #define X_WIN 2
  4. #define DRAW 3
  5. #define ERROR 4
  6.  
  7. struct tablero {
  8. uint8_t juego[3][3];
  9. };
  10.  

Hice esta funcion que evalua las 3 Filas , 3 Columnas y 2 Diagonales. Adicional evaluar si es empate, si todavia nadie gana y si existe alguna discrepancia en el tablero

La pregunta aqui es, ¿Existe una forma mas eficiente de hacer esto?

Me refiero a que se me hace bastante pesado evaluar todas las lineas xD..

NOTA: No he compilado el codigo por lo que puedw tener errores.

Código
  1. uint8_t estatus_juego(struct tablero *t) {
  2. uint8_t e;  //Estatus a devolver
  3. register uint8_t i = 0,j = 0;
  4. uint8_t contador_X,contador_O,casilla;
  5. bool continuar = true;
  6. //Procedemos a validar las 3 Lineas horizontales
  7. i = 0;
  8. while(continuar && i < 3) {
  9. j = 0;
  10. casilla = t->juego[i][j];
  11. j++;
  12. while(continuar && j < 3 && ) {
  13. if(casilla != t->juego[i][j] || !t->juego[i][j]) {
  14. continuar = false;
  15. }
  16. j++;
  17. }
  18. if(continuar){
  19. //si continuar sigue siendo true en este punto el jugador casilla Gana y ya no es necesario evaluar los otros casos
  20. continuar = false; // Establemos continuar como false para que ya no entre al ciclo siguiente
  21. }
  22. else {
  23. //En caso de que continuar sea false, significa que debemos seguir evaluando las lineas restantes
  24. continuar = true // Establemos continuar como true para que si entre al ciclo siguiente
  25. }
  26. i++;
  27. }
  28. if(continuar) {
  29. //Continuamos la evaluacion de las lineas Verticales
  30. i = 0;
  31. while(continuar && i < 3) {
  32. j = 0;
  33. casilla = t->juego[j][i];
  34. j++;
  35. while(continuar && j < 3) {
  36. if(casilla != t->juego[j][i] || !t->juego[j][i] ) {
  37. continuar = false;
  38. }
  39. j++;
  40. }
  41. if(continuar){
  42. //si continuar sigue siendo true en este punto el jugador casilla Gana y ya no es necesario evaluar los otros casos
  43. continuar = false; // Establemos continuar como false para que ya no entre al ciclo siguiente
  44. }
  45. else {
  46. //En caso de que continuar sea false, significa que debemos seguir evaluando las lineas restantes
  47. continuar = true // Establemos continuar como true para que si entre al ciclo siguiente
  48. }
  49. i++;
  50. }
  51. if(continuar) { //Evaluamos las lineas Diagonales
  52. casilla = t->juego[0][0];
  53. if(casilla == t->juego[1][1] && casilla == t->juego[2][2] && casilla != 0) {
  54. if(casilla == 'X') {
  55. e = X_WIN;
  56. }
  57. else {
  58. e = O_WIN;
  59. }
  60.  
  61. }
  62. else {
  63. casilla = t->juego[0][2];
  64. if(casilla == t->juego[1][1] && casilla == t->juego[2][0]  && casilla != 0) {
  65. if(casilla == 'X') {
  66. e = X_WIN;
  67. }
  68. else {
  69. e = O_WIN;
  70. }
  71. }
  72. else {
  73. //Todavia nadie gana o es empate en caso de que ya no queden casillas libres
  74. contador_X = 0;
  75. contador_O = 0;
  76. i = 0;
  77. while(i < 3) {
  78. j = 0;
  79. while(j < 3) {
  80. if(t->juego[i][j] == 'X') {
  81. contador_X++;
  82. }
  83. else {
  84. if(t->juego[i][j] == 'O') {
  85. contador_O++;
  86. }
  87. }
  88. j++;
  89. }
  90. i++;
  91. }
  92. if(abs(contador_O-contador_X) > 1) {
  93. //ERROR de Tablero, no es posible que un jugador tenga 2 o mas 'fichas' que el otro en el tablero
  94. e = ERROR;
  95. }
  96. else {
  97. if(contador_X+contador_O < 9) {
  98. e = UNKNOW;
  99. }
  100. else {
  101. e = DRAW;
  102. }
  103. }
  104. }
  105. }
  106. }
  107. else {
  108. //En este punto evaluamos quien gano
  109. if(casilla == 'X') {
  110. e = X_WIN;
  111. }
  112. else {
  113. e = O_WIN;
  114. }
  115. }
  116. }
  117. else {
  118. //En este punto evaluamos quien gano
  119. if(casilla == 'X') {
  120. e = X_WIN;
  121. }
  122. else {
  123. e = O_WIN;
  124. }
  125. }
  126. return e;
  127. }
  128.  

Saludos
859  Programación / Programación C/C++ / Re: (Consulta) Funcion FgetS en arreglo bidemensional en: 29 Agosto 2016, 14:09 pm
Hola todo bien con la respuesta de JavierScars

Solo me queda la duda del puts...
Segun yo solo deberia de ser:

Código
  1.    while (!feof(arch))
  2.    {
  3.        fgets(arreglo[i],20,arch);
  4.        i++;
  5.    }

palacio29 solo tienes que agregar el indice de la posicion del arreglo donde guardaras la entrada


Saludos
860  Programación / Programación C/C++ / Re: Tabla ASCII en C++ caracteres de control en: 28 Agosto 2016, 20:31 pm
Si tienes razon el 3 tiene una forma de corazon, aunque la salida es muy variada en cada sistema y version. Por ejemplo en un sistema FreeBSD no imprime nada pero si entro a determinadas consolas si se ve el coraxon.

Que sistema tienes y en donde lo estas ejecutando.

Páginas: 1 ... 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines