LOc0
 
LOc0
 
#31 19 feb 12, 21:19
#31 19 feb 12, 21:19
#27 Tienes toda la razón en que los barcos no están identificados, como comenta #21 (no lo leí). Con tanta abstracción se me fue la pinza y olvidé lo de Hundir la flota porque entonces necesitas tener los barcos que están juntos delimitados para saber cuándo te los hunden... Así que nada, como curiosidad queda, pero NO vale. Manita a Ulmo y a Enzo pues

Salu2

PD: y me parece que la nono-solución peca de lo mismo xD Esperando con ansia la explicación de Gusete
Mensaje editado 1 vez. Última edición 19 feb 12, 21:23
 
GreyShock
 
#32 19 feb 12, 21:56
#32 19 feb 12, 21:56
#29 El objetivo es "derrotar" al oponente. No necesitas saber como son sus barcos, sólo hundírselos.

Por ejemplo, marcar con 8bits cada una de las casillas donde hay barcos sería válido. Lo malo es que ocuparía 160 bits de este modo.

..Sigo perdido en cuanto a lo de las dobleces, suena a ciencia ficción XD
 
EnZo
 
EnZo
 
#33 20 feb 12, 00:05
#33 20 feb 12, 00:05
#32 Así tambien se puede jugar, pero no lo considero el juego de hundir la flota. Ya que saber cuando has hundido un barco te hace saber cuantos y que tipos de barcos te quedan pendientes por hundir. Forma parte de la estrategia del juego. Aunque si el enunciado original no contempla eso me callo

En cualquier caso la solucion de 89 de loco es muy ingeniosa
Mensaje editado 1 vez. Última edición 20 feb 12, 01:07
 
LOc0
 
LOc0
 
#34 20 feb 12, 01:20
#34 20 feb 12, 01:20
#33 Ingeniosa, defectuosa e inservible xD (Ya la he corregido, aunque no queda tan espectacular).

Salu2
 
NeV3rKilL
 
#35 20 feb 12, 08:47
#35 20 feb 12, 08:47
#32 Yo lo de los dobleces tampoco lo veo claro. Si haces un pliegue, vale, reduces la coordenada en un bit, pero a la vez necesitas ese bit para decir en qué parte del pliegue está el barco así que estás en las mismas de 4 bits pro barco.
 
GreyShock
 
#36 20 feb 12, 10:11
#36 20 feb 12, 10:11
#33 Yo considero que no hay estrategia cuando conoces exactamente las casillas que ocupan todos sus barcos, en un turno puedes decir todas las coordenadas y ganar.

Aunque creo que tu vas por la parte de que el código es para "generar" partidas, o algo así? Que luego el programa sea capaz de descrifrar la tira de bits, colocarlos en el tablero, saber cual es cada barco, y después permitir que dos humanos jueguen ¿puede ser?

El ejercicio estaba planteado como un "espía" que te manda los datos del oponente para derrotarlo. Pero bueno, tampoco pasa nada por resolverlo con, y sin los barcos. Más diversión xD

Ya que estamos, expongo mi manera "inspirada" en los nonogramas, que poco tiene de nonograma, pero me dio esta idea.

En el caso de ejemplo me ocupa 81 (EDIT: mentira, me ocupa 98) bits. Sería así:
Spoiler


aunque para mi gusto, la mejor y más elegante sigue siendo la de 94 de momento
Mensaje editado 3 veces. Última edición 20 feb 12, 10:22
 
EnZo
 
EnZo
 
#37 20 feb 12, 12:07
#37 20 feb 12, 12:07
#36 "en un turno puedes decir todas las coordenadas y ganar" cuando pasa eso? 1 de cada millon de partidas? xD
El no saber que barcos te quedan por hundir le quita la gracia al juego de hundir la flota para mi.

Sip, yo veia el problema como un juego real por internet. Donde meter toda la configuracion en 127 bits es super optimo pensando en transferencia de datos.

Pero si problema está planteado como un "espia"... entonces ya es otro tema. Además tienes razon de que asi tienes mas opciones para devanarte los sesos.

Aunque estoy convencido de que es imposible bajar de los 94 si quieres descodificarlo luego, quites de donde quites luego tienes que ponerselos... yo ya he desistido. A ver si algun genio se le ocurre algo
 
Ulmo
 
online
Ulmo 
 
#38 20 feb 12, 14:55
#38 20 feb 12, 14:55
Uffff, he tenido una idea bastante loca q quizás puede reducir algo la cosa, a ver si la desarrollo un poco pero os hago un pequeño croquis:

La idea sería numerar las filas y columnas con bits, 0 si en esa columna no hay ningun barco, 1 si hay alguna casilla ocupada con un barco. De esa forma gastas solo 24 bits, pero aun tienes q resolver las colisiones, gastando nuevos bits.

De hecho gastando 1 solo bit puedes volver el peor caso (todos los barcos situados en la diagonal) en el mejor caso si usas el primer bit para decir si listaras diagonales o horizontales-verticales.

Le daré un poco al tarro pero creo q puede ser interesante de explorar, de hecho incluso usando los 2 sistemas (cruces de diagonales + cruces de horizontales-verticales) podrías desestimar algunos casos y estarias gastando solo 56 bits.
 
EnZo
 
EnZo
 
#39 20 feb 12, 17:14
#39 20 feb 12, 17:14
#38 No te he entendido bien. Gastas 24bits (que en realidad son 28, 14+14) para decir en que fila/columna está. Pero luego tendras que ver que mas casillas estan ocupadas no?
 
Ulmo
 
online
Ulmo 
 
#40 20 feb 12, 18:16
#40 20 feb 12, 18:16
#39 Sí sí claro, es como punto de partida.
 
PandragoQ
 
#41 22 feb 12, 01:09
#41 22 feb 12, 01:09
Asi, a bote pronto... haciendo un LZ78 de los 196 bits, con la densidad de "1" que te vas a encontrar (un 10%) creo que se reduciria un huevo. Esta noche si puedo lo programo en un pis-pas

Edit: Pues no, no funciona... pero me ha gustado el problemilla... el record esta en 93?
Mensaje editado 1 vez. Última edición 22 feb 12, 03:31
 
GreyShock
 
#42 22 feb 12, 08:49
#42 22 feb 12, 08:49
#41 Eso dicen, aunque yo creo que son 94 bits, al menos si es por el método de identificadores para las formas, no se me ocurre como quitar ese bitillo.
  3
PorkoJones
 
#43 22 feb 12, 15:01
#43 22 feb 12, 15:01
Saludos,

muy interesante el problema, la verdad que si... creo que reduzco a 88 bits, manteniendo la codificación.

Spoiler
 
GreyShock
 
#44 22 feb 12, 15:36
#44 22 feb 12, 15:36
#43 Eres el amo. Yo también estuve buscando reducción de bits mediante combinatoria y no llegué a nada... pero la maravilla esa de ordenar los barcos de 1... uf, obra de arte.

Me quito el sombrero, el pelo y la tapa del cráneo. Sí señor.
 
EnZo
 
EnZo
 
#45 22 feb 12, 17:30
#45 22 feb 12, 17:30
#43 Y como consigues hacer la descodificacion sin flags que especifiquen el orden en el que lo colocas todo?
 
PandragoQ
 
#46 22 feb 12, 17:35
#46 22 feb 12, 17:35
#45 el orden lo puedes sacar sumando las coordenadas XY de cada barco de 1. El menor de los 4, el barco 1, el siguiente, el 2... it's easy, my friend

#47 si nos ponemos asi.... 2X + Y
Mensaje editado 1 vez. Última edición 22 feb 12, 19:13
 
PorkoJones
 
#47 22 feb 12, 17:47
#47 22 feb 12, 17:47
Saludos,

#46 Cuidado con eso, porque entonces un barco en (4,9) tendria el mismo orden que uno en (9,4).

Spoiler
  3
PorkoJones
 
#48 22 feb 12, 19:50
#48 22 feb 12, 19:50
Saludos,

vale... he tenido que seguir dándole vueltas mientras volvia a casa con el coche...

Llego a 85 bits (reduzco 3 más).

Spoiler
 
LOc0
 
LOc0
 
#49 22 feb 12, 23:35
#49 22 feb 12, 23:35


Salu2
 
EnZo
 
EnZo
 
#50 23 feb 12, 00:38
#50 23 feb 12, 00:38
Que crack eres

Echa el curriculum en inteligencia jeje
12
Favoritos
3


Este hilo es una pasada

Si te registras tendrás una carpeta personal con tus hilos favoritos para poder vigilarlos como hacen los mejores paranoicos.

Regístrate ahora! Sólo son 10 segundos!
x