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

#21
Cita de: ivancea96 en 24 Diciembre 2014, 00:19 AM
¿Skynet? xD

Sí, es el segundo de los difíciles:  http://www.codingame.com/puzzles

Cita de: ivancea96 en 24 Diciembre 2014, 00:19 AM
Dado que es una página de retos, no has pensado en tomártelo como un reto personal el completar el código? :/

Sí, de hecho es así como me lo estoy tomando y como me tomo todos los retos. Lo que estoy pidiendo no es eso, ni la solución del problema, ni siquiera una sola línea de código :xD

Lo que estoy pidiendo es algún consejo, explicación o página externa con información acerca de búsqueda en diagramas de árbol. O que alguien me diga si voy por buen camino, si hay algún método mejor y más eficiente para hacer eso o si la idea es bueno pero lo estoy implementando mal.

Con lo que llevo hecho (sin hacer búsquedas) he conseguido pasar los cuatro primeros tests, pero los dos últimos se me atascan y creo que no se pueden resolver sin esta función.

Un saludo.
#22
Buenos días a todos, estoy resolviendo un problema en la siguiente web: codingame.com (totalmente recomendada si no la conociais). El caso es que para resolverlo he creado una clase como esta:

Código (cpp) [Seleccionar]
class Node {
    int id;
   
    final List<Node> connectedNodes = new List<Nodes>();
   
    Node(this.id);
   
    void connectNodes(Node otherNode) {
        if (otherNode == null) return;
       
        connectedNodes.add(otherNode);
        otherNode.connectedNodes.add(this);
    }
   
    void removeLinks(Node otherNode) {
        if (otherNode == null) return;
       
        connectedNodes.removeWhere((node) => node == otherNode);
        otherNode.connectedNodes.removeWhere((node) => node == this);
    }
}


Y en el main tengo la siguiente lista:

Código (cpp) [Seleccionar]
List<Node> nodes = new List<Node>(size);

Ahora bien, necesito una función para encontrar la distancia minima entre dos nodos. Tras devanarme los sesos durante un buen rato, he escrito la siguiente función que (sorpresa, sorpresa), no funciona.

Código (cpp) [Seleccionar]
int findDistance(int id1, int id2) {
        int count = 0;
       
        if (id1 == id2) return 0;
       
        Node node1 = nodes[id1];
        Node node2 = nodes[id2];
       
        List<int> idsExpanded = new List<int>();
        List<int> distances = new List<int>();
       
        void expand(Node n1) {
            count++;
           
            for (var subNode in n1.connectedNodes) {
                if (subNode.id == id2) distances.add(count);
               
                if (!idsExpanded.contains(subNode.id)) {
                    idsExpanded.add(subNode.id);
                    expand(subNode);
                }
            }
           
            count--;
        }
       
        expand(node1);
       
        // Las ordena de menor a mayor
        distances.sort();
       
        return distances.first;
    }


He buscado información sobre búsqueda en árboles y grafos por ahí, pero debido a que mis conocimientos de algoritmos son muy limitados (no soy universitario ni nada de eso, he aprendido por mi cuenta) no suelo entender las páginas que encuentro.

Agradecería si alguien me pudiese explicar el método que debería usar o cual es la manera optima de diseñar esta función.

El maravilloso lenguaje que estoy usando es Dart, una especie de mezcla entre javascript y Java, para que nadie se asuste  :xD

Un saludo y gracias de antemano.

PD: El problema es el Skynet Finale - Level 2, de los difíciles, por si alguien ya conocía la página
#23
GNU/Linux / Re: No se puede cambiar el volumen
29 Agosto 2014, 23:47 PM
Gracias por responder, aunque ya está arreglado. Un día al encender el ordenador de repente me doy cuenta de que se había resuelto solo  :o En fin, la informática es así  :xD

Un saludo y gracias de todas formas
#24
GNU/Linux / No se puede cambiar el volumen
25 Agosto 2014, 17:04 PM
Buenos días a todos, ayer estaba configurando diferentes opciones para grabar una partida de un videojuego en linux, en concreto estaba atascado con el sonido, porque no se grababa. Al final deje de intentarlo y me dí cuenta de que la barra de sonido que hay arriba había desaparecido y que las teclas para subirlo, bajarlo o mutearlo no funcionaban.

Puede que haya borrado algo o instalado algo que no debía, pero he intentado de todo y no se me ocurre que puede pasar.

Mi so es Elementary OS, que está basado en Ubuntu, así que la solución para uno funcionará para el otro.

Un saludo y muchas gracias por adelantado.
#25
Pues personalmente te recomendaría empezar con python, tiene una sintaxis muy sencilla y no hay cosas que puedan ser complicadas como podrían ser los punteros. Sin embargo si se aprende a un nivel avanzado es muy potente.

De python hay una serie de videos muy buenos en securitytube.net, pero son de pago. Si no en youtube hay muchísimo material.

Aunque creo que todo el mundo coincidirá conmigo en que los mejores tutoriales son los de Pau Fernández, la página es minidosis.org. Son de C++, pero son los de mejor calidad en español. Este lenguaje es un poco más complicado, pero con dedicación se puede aprender perfectamente.

Si a pesar de esto sigues queriendo aprender Java, en youtube hay muchos canales dedicados a ello, como el de xymind.

Un saludo
#26
Cita de: ccrunch en  4 Julio 2014, 21:25 PM
creo que con el ventilador de fábrica será suficiente a no ser que lo tengas siempre al 100% o le hagas overclock aunque con la gráfica que tienes pondría un procesador un poco menos potente.

Eso pensé en un principio pero tratandose de un AMD y en verano... Prefiero no jugarmela. Y en cuanto a lo del SSD cuando ahorre algo más de dinero me compraré uno de 120 GB y volveré a organizar las particiones.

La caja me gustó mucho y según vi en algunos comentarios es de muy buena calidad y tiene buena ventilación. Aunque si es verdad que es bastante cara...

Un saludo y gracias por todo
#27
De momento no entra en mis planes instalar windows, creo que probaré con linux y si no me da buenos resultados pues ya me pillaré un windows 7.

De todas maneras los drivers están en la página oficial de nvidia (creo):

http://www.nvidia.com/download/driverResults.aspx/76749/en-us

Tienen un buscador muy majo donde se pueden encontrar todos los drivers:

http://www.nvidia.com/Download/index.aspx?lang=en-us

La verdad es que es increíble el esfuerzo que está haciendo steam para introducir a linux en el mundo del gaming. Y más ahora que han sacado el Civilization V y el Witcher 2 :o Creo que podré aguantar un tiempo sin windows  :xD

Un saludo y muchas gracias
#28
Buenas a todos, he estado ahorrando todo el año y finalmente tengo suficiente para comprarme un pc a piezas, con un presupuesto de 700€. Esta es la configuración:

www.pccomponentes.com/pccly/B873E083

La verdad es que me gustaría tener solo linux de momento y no sé si funcionará bien o dará problemas de drivers con la placa base y la gráfica. Y a parte quisiera saber que opinan del pc, que cambiarían, etc.

Un saludo y muchas gracias de antemano
#29
Programación General / Re: python vs c++
11 Mayo 2014, 01:39 AM
En primer lugar, debes saber que no hay mejor lenguaje de programación, todo depende de para qué quieras usarlo y de lo cómodo que te sientas con él.

En cuanto a las diferencias así en terminos generales: Python es un lenguaje mucho más moderno y amigable en lo que se refiere a sintaxis, por lo que se ahorra en tiempo y en cantidad de código. Sin embargo, al ser un lenguaje interpretado su rendimiento es bastante menor que el de otros lenguajes como C/C++.

Además, Python es un lenguaje de alto nivel, lo que significa que no puede (o es muy dificil) realizar tareas "más cercanas al ordenador", como podría ser por ejemplo el manejo de memoria.

Mi recomendación es que cuantos más lenguajes aprendas, mejor. A mí ambos me gustan mucho, simplemente los uso en situaciones diferentes.

Un saludo
#30
Hardware / Re: Configuración PC por piezas
10 Mayo 2014, 11:41 AM
Yo creo que cambiaría los discos duros, no creo que necesites 2TB y menos si no vas a descargar demasiados videojuegos.

Yo me compraría un HDD de 1TB o incluso 500 GB y un SSD de 60. Y con el dinero que te ahorras en eso te puedes comprar un mejor procesador o más memoria RAM.

Un saludo  :laugh: