elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicio de Universidad..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio de Universidad..  (Leído 10,577 veces)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #10 en: 25 Julio 2011, 22:35 pm »

Pajaras, ahora que estas conectado.. cuando haras el tutorial que no he podido entender backtracking o no se que tengo mal xD


En línea

]_HQH_[

Desconectado Desconectado

Mensajes: 39



Ver Perfil WWW
Re: Ejercicio de Universidad..
« Respuesta #11 en: 25 Julio 2011, 22:56 pm »

Este programa es tipico de ejemplo para quien se introduce en competiciones de programacion.

Recuerda siempre que el nombre lo dice, back-tracking es recorrer al reves... :) Y al recorrerlo, si un paso ha costado mas que el anterior, no lo hagas.

Aqui tienes información sobre algoritmica
 http://hispabyte.net/foro/index.php?board=92.0


En línea

Hispabyte : Programación, seguridad, informatica e internet

Puedes seguir a Hispabyte en :

Facebook
Twitter
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #12 en: 25 Julio 2011, 23:12 pm »

Si me puedes dar una mano te agradezco mucho, mira.. yo lo que primero hice fue que mi programa haga movimientos en sentido del reloj hasta que no haya mas solucion, entonces ahi vuelve una posicion atras y anota el movimiento que hizo la ultima vez, para repetir eso pero con el movimiento anterior. Despues me di cuenta que tendria problemas con eso, ya que despues que avanza ese mov anterior no lo cambio y haria un paso menos.

Entonces hice una lista de los movimientos y usaba solo el ultimo, pero tampoco funciono, entonces yo ahora uso un array multidimensional que voy a ir anotando los movimientos para cada numero de paso en su posicion en el tablero y el movimiento que hizo.

Pero me acabo de dar cuenta que haciendo otros movimientos se puede llegar al mismo numero y la misma posicion, entonces otra vez me caga todo :S

Si no me entiendes pregunta, aunque como ves estoy perdido y si me explicas desde 0 es mejor, espero que me ayudes ya que entre al foro q pasas y sobre el ejercicio este no habla pero hay otras cosas si y me cuesta mucho entender mirando codigo simplemente
En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #13 en: 31 Julio 2011, 16:18 pm »

Lo más fácil es hacerlo con backtracking, como ya han dicho.
http://es.wikipedia.org/wiki/Backtracking

Es mucho más eficiente hacerlo con restricciones:
http://es.wikipedia.org/wiki/Programaci%C3%B3n_con_restricciones

Esto es el código del algoritmo de backtracking mejorado, hace BEP igual que bactracking, pero en cada bifurcación escoge el camino más prometedor dependiendo de la heurística que le pongas en lugar de escoger uno aleatoriamente.

Código:
module MyBacktrac (backtracking) where
import List

backtracking::
     (tsolucionParcial -> tsolucionParcial -> Ordering) -- Ordenar para A*
     -> (tsolucionParcial -> Bool)                   -- EsSolucionFinal?
     -> (tsolucionParcial -> tsolucion)              -- Convertir
     -> (tsolucionParcial -> [tsolucionParcial])     -- Ampliar
     -> (tsolucionParcial -> Bool)                   -- EsValida?
     -> [tsolucionParcial]                           -- Estado inicial
     -> Maybe tsolucion

backtracking _ _ _ _ _ [] = Nothing
backtracking orden essolucion convertir ampliar esvalida (sp:sps)
     | essolucion sp = Just (convertir sp)
     | otherwise = (backtracking orden essolucion convertir ampliar esvalida)
           (sortBy orden ((filter esvalida (ampliar sp)) ++ sps))
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #14 en: 31 Julio 2011, 20:43 pm »

Sigo sin entender :S, no podrias decirme con palabras los pasos a seguir, q yo despues veo como lo implemento, pero siendo mas puntual claro
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #15 en: 31 Julio 2011, 21:15 pm »

Mira en links. Está en Python. Lo vas a poder pasar fácilmente
http://es.m.wikipedia.org/wiki/Problema_de_los_movimientos_de_un_caballo
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #16 en: 31 Julio 2011, 21:50 pm »

Pero veo que usa Random y la idea es no usar random, porque con random ya lo tengo, pero bueno.. esperare hasta la universidad, gracias a todos
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Ejercicio de Universidad..
« Respuesta #17 en: 31 Julio 2011, 23:34 pm »

He juntado varios links que aparentemente me parecieron útiles.

http://vpdesai.tripod.com/ktour.htm
http://hurring.com/scott/code/java/knighttour/ →Según comenta el autor, está muy poco optimizado, así que deberás mejorarlo
http://www.brainbashers.com/knight.asp →Para los que quieran practicar un poquitín ;)

Un abrazo!
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ejercicio] Aca tienen un ejercicio para practicar « 1 2 3 »
Programación Visual Basic
Dreamaker 20 16,593 Último mensaje 5 Septiembre 2010, 02:57 am
por TGa.
ejercicio conclase pag 70 ejercicio 1
Programación C/C++
flony 2 4,565 Último mensaje 17 Octubre 2010, 12:16 pm
por Akai
Duda sobre ejercicio de la universidad
Programación C/C++
Enkthos 4 2,298 Último mensaje 18 Febrero 2016, 23:30 pm
por MAFUS
Ayuda con un ejercicio de la universidad
Java
joseluisperez 1 2,904 Último mensaje 1 Diciembre 2017, 17:38 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines