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 - AlbertoBSD

#781
Hacking / Re: Whatsapp
29 Agosto 2016, 19:29 PM
Lo hace por medio de claves criptograficas

Saludos!
#782
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:

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.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define MUESTRAS 30
#define SIMULACIONES 10000000
#define MAX 60000

int main() {
register int i = 0,j = 0;

int elegido,premio, contador = 0;
srand(time(NULL));

//Sorteos con cambio de Variable
j = 0;
while(j < MUESTRAS){
i = 0;
while(i < SIMULACIONES) {
elegido = rand() % MAX; // La variable elegida cambia en cada sorteo
premio = rand() % MAX;
if(elegido == premio) {
contador++;
}
i++;
}
j++;
}
printf("Total de veces ganador CON cambio de Variable %i/(%i Sorteos)\n",contador,MUESTRAS*SIMULACIONES);


//Sorteos SIN cambio de Variable
j = 0;
elegido = rand() % MAX; // La variable no cambia
contador = 0;
while(j < MUESTRAS){
i = 0;
while(i < SIMULACIONES) {
premio = rand() % MAX;
if(elegido == premio) {
contador++;
}
i++;
}
j++;
}
printf("Total de veces ganador SIN cambio de Variable %i/(%i Sorteos)\n",contador,MUESTRAS*SIMULACIONES);
return 0;
}


Esto va de la mano con la siguiente pregunta:

¿Es bueno cambiar siempre de variable?

Tema relacionado:

Demostracion del problema de Monty Hall

Saludos
#783
Ya vi el problema, acabo de probar el siguiente codigo en una maquina con Windows 10

#include<stdio.h>

int main() {
int i = 1;
while(i < 256) {
printf("\t%c",i++);
}

}


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!
#784
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
#785
Redes / Re: Con ping, sin internet. Ayuda!
29 Agosto 2016, 15:31 PM
A que direccion le haces ping

Recomiendo el DNS de Google

ping 8.8.8.8

Suena que tiene s problemas de Resolucion DNS prueba:nslookup www.google.com Te deberia de devolver la direccion IP DE GOOGLE
#786
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.
#787
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:

#define UNKNOW 0 //Nobody win yet
#define O_WIN 1
#define X_WIN 2
#define DRAW 3
#define ERROR 4

struct tablero {
uint8_t juego[3][3];
};


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.

uint8_t estatus_juego(struct tablero *t) {
uint8_t e;  //Estatus a devolver
register uint8_t i = 0,j = 0;
uint8_t contador_X,contador_O,casilla;
bool continuar = true;
//Procedemos a validar las 3 Lineas horizontales
i = 0;
while(continuar && i < 3) {
j = 0;
casilla = t->juego[i][j];
j++;
while(continuar && j < 3 && ) {
if(casilla != t->juego[i][j] || !t->juego[i][j]) {
continuar = false;
}
j++;
}
if(continuar){
//si continuar sigue siendo true en este punto el jugador casilla Gana y ya no es necesario evaluar los otros casos
continuar = false; // Establemos continuar como false para que ya no entre al ciclo siguiente
}
else {
//En caso de que continuar sea false, significa que debemos seguir evaluando las lineas restantes
continuar = true // Establemos continuar como true para que si entre al ciclo siguiente
}
i++;
}
if(continuar) {
//Continuamos la evaluacion de las lineas Verticales
i = 0;
while(continuar && i < 3) {
j = 0;
casilla = t->juego[j][i];
j++;
while(continuar && j < 3) {
if(casilla != t->juego[j][i] || !t->juego[j][i] ) {
continuar = false;
}
j++;
}
if(continuar){
//si continuar sigue siendo true en este punto el jugador casilla Gana y ya no es necesario evaluar los otros casos
continuar = false; // Establemos continuar como false para que ya no entre al ciclo siguiente
}
else {
//En caso de que continuar sea false, significa que debemos seguir evaluando las lineas restantes
continuar = true // Establemos continuar como true para que si entre al ciclo siguiente
}
i++;
}
if(continuar) { //Evaluamos las lineas Diagonales
casilla = t->juego[0][0];
if(casilla == t->juego[1][1] && casilla == t->juego[2][2] && casilla != 0) {
if(casilla == 'X') {
e = X_WIN;
}
else {
e = O_WIN;
}

}
else {
casilla = t->juego[0][2];
if(casilla == t->juego[1][1] && casilla == t->juego[2][0]  && casilla != 0) {
if(casilla == 'X') {
e = X_WIN;
}
else {
e = O_WIN;
}
}
else {
//Todavia nadie gana o es empate en caso de que ya no queden casillas libres
contador_X = 0;
contador_O = 0;
i = 0;
while(i < 3) {
j = 0;
while(j < 3) {
if(t->juego[i][j] == 'X') {
contador_X++;
}
else {
if(t->juego[i][j] == 'O') {
contador_O++;
}
}
j++;
}
i++;
}
if(abs(contador_O-contador_X) > 1) {
//ERROR de Tablero, no es posible que un jugador tenga 2 o mas 'fichas' que el otro en el tablero
e = ERROR;
}
else {
if(contador_X+contador_O < 9) {
e = UNKNOW;
}
else {
e = DRAW;
}
}
}
}
}
else {
//En este punto evaluamos quien gano
if(casilla == 'X') {
e = X_WIN;
}
else {
e = O_WIN;
}
}
}
else {
//En este punto evaluamos quien gano
if(casilla == 'X') {
e = X_WIN;
}
else {
e = O_WIN;
}
}
return e;
}


Saludos
#788
Hola todo bien con la respuesta de JavierScars

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

    while (!feof(arch))
    {
        fgets(arreglo[i],20,arch);
        i++;
    }


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


Saludos
#789
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.

#790
No se le ve una forma tan obvia de recorrerlos.
Lo que mas se aproxima es poder porgramar un movimiento en diagonal y cada que llegue a alguno de los límites programar con suba o baje segun sea el caso.

El detalle es que los limetes crecen y decresen. Lo interesante seria programar ese movimiento para un arrar bidimensional de cualquier Altura y anchura...


Saludos