Yo no tengo Televisión y hace mas de 10 años que no la veo, para mi Youtube es una forma de Entretenimiento Random ya que nunca se que que voy a terminar viendo al Final del dia.
Youtube tiene sus algoritmos para mostrarte vídeos Relacionados, pero llega un punto en que dices
Citar
Como chingados llegue a este video
Y asi como hay usuarios Troll que Desvian Temas... Creo yo que también existen videos troll hecho por Usuarios Troll que solo buscan desviar temas, ya saben... típicos vídeos donde el Thumbnail presenta una imagen realmente prometedora y dicha imagen nunca aparece en el video o el video habla de otra cosa. ODIO ESO!!
¿No les a pasado que empiezan viendo un Tema X y terminan viendo un tema Totalmente diferente al que empezaron?
Un reporte del foro Mundial de Economía, indica que la tecnología introducida por el Bitcoin (El Blockchain) representara el centro de las operaciones de los sistemas financieros en el Mundo.
Dicha tecnología Heredada de sistemas criptograficos a demostrado ser un pilar importante para el registro de operaciones "Económicas" esto es la compra venta de Divisas/Mercancias utilizando el bitcoin.
No significa que los sistemas financieros adopten el bitcoin, simplemente trataran de incorporar lo mejor de este: El Blockchain
Sin duda alguna la tecnología siempre estará a la vanguardia en estos temas
El pasado 21 de julio cerró la página de torrents más famosa y más utilizada en Internet, incluso por encima de ThePirateBay. A pesar de recibir constantes reclamaciones de DMCA que hacían que muchos de los enlaces, sobre todo a series, fueran eliminados a los pocos días de ser subidos, era la página a la que todos iban a comprobar las últimas novedades.
Actualmente han surgido dos mirrors que han vuelto a subir contenido, como son kickass.mx y kickass.cd. Después del cierre surgió kat.am, el cual fue cerrado por las autoridades, y actualmente el dominio ha sido comprado por estafadores, que cuando vas a descargar un enlace torrent, te piden tu cuenta bancaria.
Quien no ha visto ese concurso donde hay un solo premio detras de 3 puertas las otras 2 con Cabras u Ovejas...
La opción adecuada es siempre "cambiar" de puerta cuando te pregunten si te quieres cambiar de la misma..
El programa simula 10 Millones de Juegos 2 veces, en la primera ronda el jugador siempre cambia de puerta y en la segunda ronda el jugador nunca cambia de puerta.
Se demuestra que se tiene 66.6% de probabilidad de ganar si se cambia de puerta, contra 33.3% de probabilidad de ganar si no se cambia de puerta.
Código
#include<stdio.h>
#include<stdint.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define GOAT 0 //CABRA 0
#define PRIZE 1 //PREMIO 1
#define MAX_SIMULATIONS 10000000
int main(){
/*unsigned char */
uint8_t position =0;//Posicion del premio
uint8_t selected =0;//Posicion seleccionada por el jugado
uint8_t doors[3];//Puertas
uint8_t can_switch =0;//La puerta a la cual se puede cambiar
La memoria no se inicializa en 0 de forma automatica. Los arreglos no se inicializan en 0 de forma automatica. Las variables no se inicializan en 0 de forma automatica.
Se que es un tema tanto repetitivo y es el causante de muchos errores de programacion.
No existe ninguna garantia de que la memoria este inicializada en 0 todas las veces, hay ocasiones en la que si lo esta y hay ocasiones en la que no esta veamos este ejemplo, el cual muestra de un arreglo de 20 elementos los que su valor inicial no sea 0,
Código
#include<stdio.h>
int main(){
int i;
int arreglo[20];
i =0;
while(i <20){
if(arreglo[i]!=0){
printf("La posicion %i del arreglo no esta inicializada su valor actual es %i\n",i,arreglo[i]);
}
i++;
}
return0;
}
La salida de ese codigo compilado con GCC para windows es:
Código:
La posicion 0 del arreglo no esta inicializada su valor actual es 4200160 La posicion 2 del arreglo no esta inicializada su valor actual es 21 La posicion 4 del arreglo no esta inicializada su valor actual es 9966448 La posicion 6 del arreglo no esta inicializada su valor actual es 1 La posicion 8 del arreglo no esta inicializada su valor actual es -1 La posicion 9 del arreglo no esta inicializada su valor actual es -1 La posicion 10 del arreglo no esta inicializada su valor actual es 4200261 La posicion 12 del arreglo no esta inicializada su valor actual es 1 La posicion 14 del arreglo no esta inicializada su valor actual es 4200137 La posicion 16 del arreglo no esta inicializada su valor actual es 3 La posicion 18 del arreglo no esta inicializada su valor actual es 21
Y la segunda vez que lo ejecute fue
Código:
La posicion 0 del arreglo no esta inicializada su valor actual es 4200160 La posicion 2 del arreglo no esta inicializada su valor actual es 21 La posicion 4 del arreglo no esta inicializada su valor actual es 12063600 La posicion 6 del arreglo no esta inicializada su valor actual es 1 La posicion 8 del arreglo no esta inicializada su valor actual es -1 La posicion 9 del arreglo no esta inicializada su valor actual es -1 La posicion 10 del arreglo no esta inicializada su valor actual es 4200261 La posicion 12 del arreglo no esta inicializada su valor actual es 1 La posicion 14 del arreglo no esta inicializada su valor actual es 4200137 La posicion 16 del arreglo no esta inicializada su valor actual es 3 La posicion 18 del arreglo no esta inicializada su valor actual es 21
Como ven algunos valores cambiaron y otros se mantiene similares..
Depende del programador inicializar la memoria correctamente, o por lo menos estar cociente de que es posible que tenga basura en la memoria.
Una forma de inicializar en 0 el arreglo mencioanado al momento de declararlo es:
Código
int arreglo[20]={0};
otra forma es utilizar las funciones para inicializar con X valor la memoria
if(pivote->vertices[j]->peso_actual > peso_nuevo){// Si esta condicion se cumple es mas rapido llegar al nodo pivote->vertices[j] mediante el nodo pivote
printf("Nueva mejor ruta a %i con peso de %i\n",pivote->vertices[j]->id,peso_nuevo);
pivote->vertices[j]->peso_actual = peso_nuevo;
pivote->vertices[j]->mejor_ruta = pivote;
}
printf("Ruta de %i a %i vale %i\n",nodo_a->id,pivote->vertices[j]->id,pivote->vertices[j]->peso_actual);
//En caso de que el if no se cumpla es mas rapido llegar al nodo pivote->vertices[j] de la manera en la ya habia sido visitado previamente
}
}
else{
//printf("El subnodo %i ya a sido visitado\n",pivote->vertices[j]->id);
printf("El subnodo %i ya a sido visitado\n",pivote->vertices[j]->id);
if(pivote->vertices[j]->peso_actual > peso_nuevo){// Si esta condicion se cumple es mas rapido llegar al nodo pivote->vertices[j] mediante el nodo pivote
printf("Nueva mejor ruta a %i con peso de %i\n",pivote->vertices[j]->id,peso_nuevo);
pivote->vertices[j]->peso_actual
= peso_nuevo;
pivote->vertices[j]->mejor_ruta = pivote;
}
printf("Ruta de %i a %i vale %i\n",nodo_a->id,pivote->vertices[j]->id,pivote->vertices[j]->peso_actual);
//En caso de que el if no se cumpla es mas rapido llegar al nodo pivote->vertices[j] de la manera en la ya habia sido visitado previamente
Casi todo marcha bien con el grafo a excepcion de la parte donde valido si un valor ya existe en el grafo. En el ultimo intento que hice llevaba maa de 140 mil nodos en el grafo y con cada posible nodo nuevo tenia que validar la existencia de su valor en el grafo (Muy lento)
Posteriormente use arreglo de los nodos existentes (Igualmente lento).
Entonces voy a usar un Arbol Binario.
Y la pregunta es esa ¿Hay algo mas eficiente que un arbol binario?
Lo pregunto por que no me he actualizado en mas de 5 años en estructuras de datos, estaba contemplando una tabla hash pero nunca la estudie y dudo que sea mas eficiente que un arbol binario en lo que se refiere a insercion y busqueda de nodos.
En la cuenta de Twitter de Den Delimarsky se puede leer que la aplicación por falta de validacion de certificado es vulnerable a ser engañada mediante un proxy y con llamadas a la API es posible navegar en el mundo de pokemon go desde la comodidad del hogar y sin los peligros de ser atropellado en la calle.