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

#941
Y si imprimes la pagina en PDF cada que avances algun twma puedes volver a imprimir la página.

Las paginas donde se muestran la informacion de la API estan bien estrucuturadas ya que rapidamente puedes ir a ver la documentacion de tal o cual funcion.

Saludos
#942
Es bueno verte por aqui  ;D

Es parte del Juego del imposible

http://foro.elhacker.net/programacion_cc/iquestimposible_juego_de_rompecabezas_imposible-t455410.0.html

Propuse que se creara un grafo para ver todas las posibilidades.

Y tal vez encontar la menor combinación de teclas para llegar de una configuracion a otra usando dijsktra

El programa actual ya funciona muy bien para hacer el grafo me auxlio de una arreglo y un arbol.

El arreglo tiene una lista de todos los nodos del grafo y el arbol me ayuda a buscar rapidamente si alguna conbinacion ya existe o no.

El detalle que quiero optimizar la estructura para que no ocupe tanto espació en archivo ni en RAM

Saludos
#943
Voy a implementarlo asi como comentas.

Por cierto en este punto ya van 16.8 Millones De Nodos en el Grafo y en  el Arbol  ;-) ;-)  ;-)  y el archivo pesa sobre 320 MB.

Saludos
#944
Pues resulta que esa aproximacion que publique, ya implementada es muy lentaaaa  :-\

Tendre que o bien conformarme con la estructura original o en su defecto reprogramar la funcion que crea los nodos para que desde el principio se encuentren "comprimidos" en memoria la informacion deseada.

Saludos
#945
Como marcas un registro vacio??

La idea seria la siguiente

   int borrar(int pos,int estudiantes[],int notas[]){
       int i = pos -1;
               estudiantes[i] = /*Valor para identificar estudiante vacio*/;
             for (int x=0; x<asignatura; x++){
              notas[5*i+x] = /* Nota vacia */;
             // notas--; // Esta instruccion no tiene sentido
     }
}


Te tienes que plantear como identificar a un estudiante vacio, o si eso no existe tendrias que mover los valores restantes para que ocupen la posicion eliminada.

Saludos
#946
Pues para búsquedas, yo recomendaría Arboles Binarios es de lo mas eficiente segun se.

Saludos!
#947
#include<stdio.h>

struct nodo {
int id;
unsigned char tabla[4][4];
unsigned char x,y;
struct nodo *aristas[4];
};

int main() {
int i = 0,j;
struct nodo a;
unsigned long long int c = 0;
while(i < 4) {
j = 0;
while(j < 4) {
a.tabla[i][j] = 16;
c = c<<4;
c += a.tabla[i][j];
j++;
}
i++;
}
printf("%llu",c);
}


Pues el ejemplo asi quedo, se termina guardando todo el arreglo en una sola variable de 64bits y simplemente me quedaría usar fwrite para guardar la variable en archivo. Y aplicaría el método inverso para devolverla a una tabla.

Saludos!
#948
En el X haces eso siempre escribes en los mismos 5 lugares.

Necesitas algo como un desplazamiento seria como

5* i +x

Te dejo este video

[youtube=640,360]https://www.youtube.com/watch?v=U-zA-VvOllM[/youtube]
#949
El contador i siempre inicia en 0 y hasta menor que  5

Saludos!
#950
Cita de: crack81 en 22 Julio 2016, 19:30 PM
PD: Cual es el objetivo de optimizar el struct?

El objetivo es ahorrar espacio para guardar la tabla en archivos, el detalle es que en este punto el programa sigue generando Nodos y  actualmente lleva mas de 7.8 Millones de Nodos

Cuenta, 16 bytes por 7.8 Millones en un archivo son 124 MB por lo cual poder quitarle la mitad del peso se me haria fantastico, ya que en este punto desconozco cuantos nodos mas se valla a generar.

ivancea96, creo que voy a tener una estructura adicional asi como lo comentas, y calcular esa estructura con operaciones de bits y Guardar el resultado en una sola variable de 64 bits.

Lo que seria un unsgined long long


Saludos!