Título: Algoritmo en dos dimensiones Publicado por: DanFire en 15 Abril 2016, 18:24 pm Buenas!
tengo un problemilla que no sé resolver a ver si vosotros se os occure algo ;) Esto es lo que tengo: Un vector de massas (es francés) dnd massa es una classe: Código: std::vector<Masse> Y dentro de esa clase tengo los atributos siguientes: Código: private: Código: typedef std::array <size_t, 2> CoordIJ; Este atributo en especial cuado esta inicializado posee las coordenadas de su posicion en otro vector pero de dos dimensiones tal que asi: Código: typedef std::vector<std::vector<Masse> > TabMasses2D En definitiva lo que me gustaria seria poder pasar de mi 1era dimension que posee las coordenadas de la segunda a la segunda XD. Pero notese que el vector de una dimesion las masas que estan dentro no tienen por que estar en orden y puede tambien pasar lo siguiente: massa m1; massa m2; m1.coordenadasEn2D( 2, 5); m1.coordenadasEn2D( 7,0); es decir que el resto de las "cuadriculas" (asi me lo imagino) estarian vacias. Un pseudo codigo me bastaria de sobra o nada mas que la parte algoritmica. Estoy desesperado espero que alguien pueda ayudarme... Gracias de antemano y saludos! pd: aqui teneis el prototipo de mi funcion: Código: TabMasses2D Dim1toDim2(std::vector<Masse> const&); Título: Re: Algoritmo en dos dimensiones Publicado por: HardForo en 15 Abril 2016, 23:32 pm Estoy casi seguro que @MAFUS y otros lo puedan "cazar al vuelo" pero a muchos mas podrian ayudarte si colocas el codigo completo.
Título: Re: Algoritmo en dos dimensiones Publicado por: ivancea96 en 15 Abril 2016, 23:45 pm Quieres crear un array bidimensional de esa clase a partir de un array unidimensional, hasta ahí bien.
Pero, ¿cómo quieres hacerlo? No entiendo cómo quieres crear el array bidimensional a partir del array unidimensional. ¿Qué pasos quieres seguir? Título: Re: Algoritmo en dos dimensiones Publicado por: MAFUS en 16 Abril 2016, 08:36 am A ver si entiendo el concepto que estás intentando realizar.
Tienes un conjunto de particulas en un entorno tridimensional, un cubo. Por lo que veo en la definición de sus propiedades, estas partículas van a interactuar entre sí unas con otras. Has guardado tus partículas en un array, contienen la información en el momento t Quieres otro array para que te guarde todas las partículas otra ves pero actualizadas al momento t+1. Título: Re: Algoritmo en dos dimensiones Publicado por: DanFire en 16 Abril 2016, 12:04 pm Buenas!
He cambiado mi concepcion, era una mala idea y demasiado complicado.. En el mejor de los casos tenia que hacer n operaciones y en el peor n^3. Pero gracias! Si os pica la curiosidad o teneis consejos que darme os puedo enviar el codigo por privado pero no puedo compartirlo asi en internet, me arriesgaria demasiado. MAFUS estas casi en lo correcto! Saludos Título: Re: Algoritmo en dos dimensiones Publicado por: MAFUS en 16 Abril 2016, 14:48 pm Pues si estoy en casi lo correcto busca un juego, lo más sencillo que encuentres, del juego de la vida de Conway.
Trabajas de la siguiente forma: Tienes un array que es tu mundo en el presente, en el momento T. Tienes un array que representa tu mundo en el momento T+1. Para rellenar éste último array lo que haces es a cada partícula de T aplicas los cálculos de física sobre todos sus vecinos en el momento T. A la partícula actualizada la guardas en el array de T+1. Finalizadas todas las partículas copias T+1 a T, o mediante punteros (será más rápido) conviertes el array T+1 en el array T y el que era el T servirá para situar los datos de T+1, y lo presentas por pantalla, o lo que sea que tengas que hacer para representar los datos. Vuelves a empezar. |