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

#131
Foro Libre / Re: consejos para ing informatica
19 Junio 2016, 15:04 PM
Sí vas a utilizar ordenador, aprenderás a programar, entre otras cosas. Pero es cierto que tendrás bastante asignaturas de matemáticas (Cálculo, Álgebra, Discretas y Lógica), Física y quizá alguna de Gestión Empresarial.

¿Portátil? Puedes llevarlo, pero no es necesario. Los apuntes de las asignaturas teóricas los tendrás que coger a mano. Y con los ordenadores de la facultad vas bien (los de mi facultad son mejores que el ordenador que tengo yo en casa  :xD)

Y consejos, uhm... Intenta llevar todas las asignaturas al día.
#132
No sé exactamente a que te refieres con "forma más fácil de tener los datos".

Podrías tener desde un array de estructuras hasta cosas como un árbol balanceado o una tabla hash. Depende de si te importan mucho las complejidades a la hora de buscar y mostrar los datos.

Por otro lado, yo haría una función que sirva sólo para mostrar los datos de un empleado para evitar tener ese switch que la verdad queda un poco feo en el main. Y también otra función que me cargue los datos desde el fichero/teclado.

Aunque si estás empezando, me olvidaría de las estructuras de datos avanzadas y simplemente haría un array de estructuras (o sea, una array en el que cada posición será una estructura de tipo empleado). Para mostrar todos los empleados, simplemente tienes que recorrer el array e ir llamando a la función que te he comentado antes (la que te muestra los datos de un empleado en particular).

La declaración de los tipos podría ser algo así:

Código (cpp) [Seleccionar]
int const MAX_EMPLEADOS = 10;

typedef struct{
string nombre;
string apellido;
string documento;
string numero;
string fecha;
string fingreso;
}tEmpleado;

typedef tEmpleado tArray[MAX_EMPLEADOS];

typedef struct{
tArray lista;
int contador;
}tEmpleados;


Como ves, tendríamos una constante que indica el número total de empleados. Después tendríamos el tipo tEmpleado (que es la estructura que guarda los datos de UN SÓLO empleado). Después tenemos un array de tamaño MAX_EMPLEADOS (o sea, 10) en el que cada posición almacena los datos de un sólo empleado. Y por último tenemos una estructura con un array (lo he llamado "lista" porque quizá es más intuitivo) y con su correspondiente contador (el contador nos marca cuántos empleados tenemos en la "lista"), y a esta estructura la he llamado tEmpleados (pues es precisamente un array con varios empleados).


Posdata: es bueno tener claro cómo vamos a llamar a las estructuras. Si tenemos un código pequeño da igual, pero si el código empieza a crecer... Lo que quiero decir es que si tienes una estructura que almacena los datos de un sólo empleado, es mejor llamarla "empleado" (o tEmpleado como la he llamado yo) a llamarla "empleados" (pues en realidad sólo almacena los datos de un empleado).
#133
Lo que es una pena es que no haya gente en este foro interesada en la cuestión de P vs. NP.

Porque es obvio que tú no cuentas.
#134
Te vuelvo a repetir: lo ordenadores de hoy en día son deterministas. No existen ordenadores con muchísimos cores tales que cada core pueda ir explorando una solución como si fuese una Máquina de Turing no determinista. Luego los ordenadores de hoy en día tardan un tiempo polinómico en resolver problemas en P y un tiempo no polinómico (o más técnicamente "súper polinómico) en resolver problemas en NP.

Si eso es lo que no se entendió, ahora queda solucionado.
#135
Está bien, dime, ¿qué información errónea hay?
#136
¿Has leído todo el thread? Me refiero sobre todo a la parte que dice "NP significa Polinómico no determinista".

Cuando digo que tarda un tiempo "no polinómico" me refiero a que los ordenadores tardan ese tiempo en resolver un problema en NP. O sea, tardan un tiempo exponencial (n^2, n^100...). Lo cual es "no polinómico"
#137
Bueno, ahora explicaré un poco mejor qué es P vs. NP (espero que está vez no me borren el thread  ;D) y porqué es el problema más importante en computación y uno de los más importantes del mundo. Vamos a ello:


Esta historia empieza cuando el Instituto Clay de Matemáticas  (Cambridge, Massachusetts) se reúne en el año 2.000 y establece 7 problemas muy importantes cuya solución se desconoce. Estos 7 problemas pasan a conocerse como "Los problemas del milenio" y el Instituto Clay ofrece una recompensa de 1 millón de dólares por la resolución de cada problema. Como os podéis imaginar, el simple hecho de entender los problemas no está al alcance de todos, pues son problemas bastante profundos que tienen que ver con matemáticas, física, etc. Hoy vamos a conocer uno de ellos: P vs. NP. ¿Por qué? Porque P vs. NP es el problema más reciente de todos y resulta muy fácil de entender (y además es un problema de computación). Vamos a explicarlo sin entrar en muchos detalles y abordando lo básico para saber de qué trata:

Las clases de complejidad P y NP

Cuando logramos resolver un problema con un algoritmo tardamos un tiempo... el que sea. Nos vamos a concentrar únicamente en dos tiempos: polinómico y no polinómico. Los problemas que tardan un tiempo polinómico son aquellos que se resuelven en un tiempo n, n^2, n^3, n^100, n^10000, etc. Y los problemas que tardan un tiempo no polinómico son aquellos que se resuelven en un tiempo 2^n, 3^n, 10^n, 100^n, etc. Como todos sabéis, es mucho peor 2^n que n^2. Vamos a ver algunos problemas de ejemplo


  • Ejemplo polinómico: imaginemos que queremos buscar un número en una lista sin ordenar. Entonces no queda más remedio que recorrer toda la lista, ¿verdad? Bien, pues ese problema se resuelve en un tiempo polinómico (pues a las malas tendremos que recorrer toda la lista).
  • Ejemplo no polinómico: imaginemos que te doy un conjunto de números, este: {0, 2, 4, 5, 10, 230, 783, 45, 61, 17} y te digo "¿Hay alguna forma de que con ese conjunto consigas obtener el número 8 haciendo sumas y restas? Entonces lo que tú harías es empezar a probar todos los números a ver si logras el número 8 (ten en cuenta que el conjunto podría ser muy grande, de tamaño n).

Perfecto, ahora sabemos que existen 2 cajitas donde podemos clasificar los problemas según tarden un tiempo polinómico o no polinómico en resolverse. Pues estas dos cajitas son las clases de complejidad P (polinómico) y NP (no polinómico). Por cierto, P en realidad significa "Polinómico determinista" y NP significa "Polinómico no determinista", pero esto es otra historia que será contada en otro momento.


Vale, vale. Pero... ¿Y por qué todo esto es tan importante? Ahora mismo te vas a dar cuenta.

El Problema

El problema de P vs. NP se basa en demostrar si ambas clases de complejidad son la misma (en este caso P = NP) o son diferentes (P != NP). Dicho de otro modo: ¿existe algún problema en NP que pueda resolverse en tiempo polinómico? Pues aunque esta pregunta parezca tan trivial, nadie lo sabe. Vamos a ver qué pasa si P = NP o si P != NP (ahora sí que os vais a acojonar).


P != NP

Si P != NP (que es lo que la mayoría de la gente piensa) en realidad no hay grandes cambios. O sea, esto no sería divertido. Simplemente se sabría que hay problemas cuya resolución no puede hacerse mejor que en tiempo no polinómico. Y poco más.

P = NP

Aquí viene lo divertido. Veamos: hay problemas que tardan tiempo no polinómico y entonces, cuando tienen una entrada un poco grande, la función crece rapidísimo (imagina 2^100 o 2^1000). Por lo tanto, aunque los ordenadores vayan súper rápidos, tardarían un tiempo muy, muy grande en hallar una solución. ¿Sabéis ese fabuloso algoritmo de cifrado que se llama RSA? RSA se utiliza para cifrar cuentas bancarias y multitud de comunicaciones hoy en día. Pues bien, RSA se basa en la factorización de números enteros, ¿y sabéis qué? Hallar la factorización de números enteros es un problema que está en NP. Luego, ¿os imagináis qué pasaría si alguien descubre que P = NP? Pues eso, que toda la seguridad de Internet se va a la *****.


No quiero extenderme mucho más, pero si buscáis un poco, veréis que hay miles de problemas en NP (y muchos de ellos con un gran impacto en el día a día del ser humano). Así que si P != NP perfecto. Pero si P = NP... Creo que no exageraría al decir que la vida cambiaría para muchas personas.

Y por eso, P vs NP es uno de los 7 problemas del milenio (y quizá el de mayor repercusión).

Aquí termina la historia y os dejo una pregunta para quien quiera resolverla:

¿P = NP o P != NP?

;D


Links interesantes:

#138
Jum... Se supone que Tor sólo cifra el origen, ¿no? O sea, no encuentro sentido a la gente que entra a FB desde Tor  :-\
#139
Foro Libre / Re: Encontrar un libro en PDF
20 Abril 2016, 17:25 PM
Cita de: El_Andaluz en 20 Abril 2016, 13:32 PM
Prueba aquí a ver si te sirve http://www.freebookspaindownload.org/edicion-especial/probably-approximately-correct

Lo quieres comprar o lo quieres gratis en PDF es lo que no me queda claro :huh:

Me piden número de cuenta y... Va a ser que no  :rolleyes:


Cita de: ivancea96 en 20 Abril 2016, 16:47 PM
Por ahí estaba este torrent: https://pirateproxy.tf/torrent/8499216/The_Golden_Ticket__P__NP__and_the_Search_for_the_Impossible_

Funcional. Epub. Puedes pasarlo a PDF en cualquier web por ahí.


¿Me lo puedo bajar así sin más? ¿O tengo que descargarme Torrent?
#140
Foro Libre / Re: Encontrar un libro en PDF
20 Abril 2016, 17:22 PM
Gratis  ;D