Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Concurso De Programacion

Iniciado por MA]Mestre, 09 de Marzo de 2005, 04:06:21 PM

« anterior - próximo »

_Grey

 exactamente, en un bucle. Para saber el como.... pues yo me puse a escrivir muchos de estos cuadrados magicos estudiarlos un poco y ya esta.... es un concurso, no te vamos a rebelar todos los truquis no!?!?!??! :P :P

Saludos.

sés

 El día 30 se verán las triquiñuelas de cada uno ;)
Soy indeciso... ¿o no?

sés

 ¿Por qué no está mi mensaje (el el foro de MQO) donde decía cuándo y a que hora lo envié (14/3/2005 16:55 aprox.)?
¿Y por qué no hay confirmación aun?

QUOTE ("gdl")
Sí me ha llegado ya la confirmación.[/quote]
Uno de los datos necesarios al enviar el correo era el usuario dentro del foro...
¿Cómo es que gdl tiene la confirmación cuando se registró 2 días después de que yo lo enviara? (ver perfil de gdl)
Soy indeciso... ¿o no?

MA]Mestre

 Ses por lo que me consta, han respondido a todos via mail, confirmando su participacion.

Este lunes, les pedire que revisen tu caso, creo que tb estara bien que pongan una lista publica.

Un saludo.

gdl

 No te pongas nervioso sés.

De todas las maneras voy a tener menos bytes que tú  ;)  

sés

Cita de: "gdl"De todas las maneras voy a tener menos bytes que tú  ;)
Ya me da igual, o lo enviaba o me explotaba la cabeza -.-

...¿Tienes menos que cronodragón (129 con el include)?
Soy indeciso... ¿o no?

gdl

 
Cita de: "sés"...¿Tienes menos que cronodragón (129 con el include)?
En efecto.  B)  

sés

Soy indeciso... ¿o no?

gdl

 
Citar¿100?

He hecho unas búsquedas de árboles de expresión con backtracking y las únicas expresiones que he encontrado eran modulares (% en C) y necesitaban unos 120bytes. Puede que existan expresiones más cortas que no usen la aritmética modular, pero lo dudo porque el problema rezuma congruencias por todas partes. :rolleyes:

Quizá algo no lineal... <_<

Luego añadimos un puñadillo de caracteres más para centrar el cuadrado y que las diagonales sumen la constante mágica, que también es requerido.

Eso sí, puede que haya algún truquillo de C que te coma algunos caracteres, pero lo dudo mucho porque llegué a los 129 bytes de cronodragón únicamente mediantes trucos de C (probablemente que él también usó). La última reducción no se basa en el C si no en las matemáticas. No son muchos bytes menos, pero puede ser la diferencia.

Con el *casi* convencimiento de que mi código es el teóricamente más corto, lo envié antes de que otro pudiera llegar al mismo convencimiento.  :ph34r:

Cuando termine el concurso te lo explico con más detalle ¿vale?

sés

 Bueno... yo lo envié antes que tú :P
Soy indeciso... ¿o no?

gdl


ZeruGiran

 Despues de casi 2.5 horas tengo 299 caracteres :(
Creo que erré el camino porque uso malloc :angry: por tanto uso dos bucles uno para generar y otro para imprimir. Por lo que les he leido se puede hacer sin reservar memoria.

Ta gueno el concurso :D

Deberia estar con mi tesis en lugar de estar jugando :rolleyes:

samsaga2

Cita de: "ZeruGiran"Despues de casi 2.5 horas tengo 299 caracteres :(
Creo que erré el camino porque uso malloc :angry: por tanto uso dos bucles uno para generar y otro para imprimir. Por lo que les he leido se puede hacer sin reservar memoria.

Ta gueno el concurso :D

Deberia estar con mi tesis en lugar de estar jugando :rolleyes:
Bueno, yo lo he hecho sin reservar memoria pero haciendo uso de trucos "guarros". Por lo que he oido matematicamente hay una forma de resolverlo sin hacer uso de matrices pero no me preguntes como porque no lo se :-P.

ethernet

 Bueno, la verdad no he hecho demasiado caso a este concurso porque por mi experiencia sé que pierdo más tiempo del que debo.. XD sin embargo tengo algunos trucos que quizas os ayuden, aunque seguro que la mayoría les conoceis. Los cito de memoria:

- por descontado: uso del condicion?cierto:falso
- definicion de variables: en ansic las variables globales por defecto son enteras y se inician a 0, por lo tanto:


void main()
{
int a = 0;
}
es lo mismo que
a;
void main()
{
}


algún caracter te ahorras.

- para el caso del main: void main(char argc, char* argv[]) es casi lo mismo que: void main(c,v)int c,**v{}. SE hace uso del guarripeich sistema de definir las variables. No sé si en este caso concreto se debe usar.

- nada de usar mallocs y optimizaciones en el algoritmo (esto es obvio pero por si acaso), no se trata de hacer que corra rápido.
- aprovechar los for: en un for puedes hacer for(a=0,b=1,e=3,i<4&&y<7;g++,g*=9); esto puede hacer ahorrarte algunos caracteres
- típico truco de #define p(x) printf(x) si es rentable en cuanto a caracteres.

No recuerdo ningún truquillo más, auque sé que los había. Si encuentro la web donde se colgaron aquellos códigos la paso por si os resultan fuente de inspiración.

Suerte,saludos

zupervaca

 bueno ya que estamos de trucos recordar el usar este tipo de formulas:

a == 0 ? true : false;

columna == N -1 ? '\r' : ' '; <-- un ejemplo de retorno de carro que agrega un espacio

etc  ;)  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.