Crucigramas de código - Soluciones

Respuestas:

8

Solución al rompecabezas C de es1024

ingrese la descripción de la imagen aquí

Tuve que esquivar un poco en 7-Down invocando un comportamiento indefinido. es1024 ha indicado que este uso de UB fue la solución deseada. Sin embargo, funcionará en las computadoras de la mayoría de las personas. Se me ocurrieron varias expresiones que lograron el resultado deseado, como -1 << 30,, 3 << 30y 6 << 29, ~(~0U/4)pero todas me hicieron imposible obtener 5-Across. Así que usé la propiedad específica de la arquitectura Intel de que solo se usan los 5 bits menos significativos para determinar el tamaño de un desplazamiento a la izquierda. Tenga en cuenta que tiene que ser así ~_y no ~1para que la cantidad a cambiar no sea una constante de tiempo de compilación. Probé las expresiones con el siguiente código:

#define T(X) _ = c; _ = X; printf("%d\n", _);
z[4] = {9};
int main(c)
{
    int _;

    T("01"[0])
    T(-8)
    T(-2)
    T(11<-328111)
    T(+2+71)
    T(9+0)
    T(0**z)
    T(5;)
    T(0<-000)
    T(2+~3)
    T(!91)
    T(!_)
    T(2**z)
    T('_T;')

    T("11"?5*9:2)
    T(15<<9)
    T(0+22)
    T(-211*0-97;)
    T(-17*0)
    T(3+0<<~_)
    T(8+000)
    T(+0)
    T(42)
    T(+!z)
    T(~_)
}
Feersum
fuente
¿De dónde viene la macro? Evité publicar la solución porque no pude obtener M-cross.
COTO
@COTO No entiendo tu pregunta, "¿De dónde viene la macro?"
Feersum
No importa. Lo confundí #define Tcomo un componente necesario para su solución. La pregunta sigue siendo, sin embargo, ¿por qué funciona M-across? ¿La definición de una constante de múltiples caracteres solo concatena los valores de bytes? Si es así, aprendí algo nuevo hoy. :)
COTO
@COTO Sí, es como hacer un número base 256. Los literales de caracteres tienen tipo int, por lo que puede poner hasta cuatro bytes sin pérdida de información.
Feersum
3
Seguramente no lo sabía. (Lo más probable es que las personas responsables de mantener su código hayan estrangulado a cualquiera que lo haya usado en el código de producción). Apoyos para hacerlo bien. :)
COTO
8

Professorfish, CJam, 41 darks

(Esta solución en realidad requiere varios espacios, por lo que no es la que el profesorfish estaba buscando).

#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`' 
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q

Eso fue muy divertido. Tenga en cuenta que #debajo del 6código es en realidad y no una celda oscura. Veamos esto:

A través de

Pista 2: [[4 3]]. Este fue uno de los más complicados, porque realmente me quedé atascado en intentarlo 4Z]]`o similar. Resulta que puedes usar el producto cartesiano m*en cosas que no son una matriz, y hará una matriz para ti. Asi que aqui esta:

4Zm*`

Sugerencia 4: 24717. En el momento en que llegué a esto, el H, J, sy finales espacio ya estaban en su lugar. El Hobsequio que probablemente podría reutilizar 17y hacer \al final. La Jempuja una 19y 247 == 13 * 19, por lo:

HDJ*s\ 

Sugerencia 7: 32. Hay un montón de maneras de hacer esto: Y5#, 3 2, ZY, YZ\, 4(2, 2)2, '32. Fui con el último, porque comenzar con un personaje parecía prometedor para 7-down, y resultó ser correcto.

Sugerencia 8: E. Ya tenía el 'dcuando llegué allí, por lo que fue entre elegir 'd1+eu, 'deu1+o una variante donde usé )y un espacio en lugar de 1+(para las personas que no son de CJam, esto toma el dpersonaje y lo incrementa y mayúscula, en cualquier orden) . Sin embargo, uen la columna final parecía útil para A-down. Así que elegí el primero de esos. Al final, 'd) eutambién habría funcionado.

Sugerencia 9: "". Bueno, esto tenía que ser "cadena vacía, obtener representación de cadena, presionar un espacio". Pero también necesitaba el 'para la representación de cadenas en 7-down, y un espacio en A-down también parecía útil, así que elegí

]`' 

Tenga en cuenta que ]también podría haber sido uno de LMOQR.

Insinuar B: "m. Realmente tuve que encajar con este con el resto, pero había pocos personajes que importaran. Ya tenía el {y el m. Entonces, en lugar de usar un bloque, me convertí {en un personaje, lo descarté y luego presioné los dos caracteres requeridos:

 '{;'"'m

Insinuar D: 124. Resolví este junto con C-down, que fue más fácil con una disminución al final. Entonces presiono un 12, un 5, y decremento lo último:

C5(

Abajo

Pista 1: [2 2 2 3]. Eso parecía demasiado sospechosamente como una factorización principal para que no fuera uno. :)

24mf`

Sugerencia 3: 3010936384. Factorizar esto demostró que en realidad es 38 6 . La única pregunta era cómo 38cumplir con 2-through. Al final necesitaba un *tercer lugar, así que doblar 19fue:

J2*6#

Sugerencia 5: 2017. ¿Dos caracteres para un número tan grande? Solo use variables incorporadas de dos dígitos:

KH

Sugerencia 6: "18". Creo que solo hay una única forma de hacer esto en 3 caracteres. Use el 18 incorporado, conviértalo en una cadena y luego en su representación de cadena.

Is`

Sugerencia 7: ' "\"\"". Probablemente la parte más difícil del rompecabezas. En particular, necesitaba obtener "\"\""solo tres caracteres. El truco consistía en obtener la representación de cadena de la cadena vacía dos veces. Eso llevó a:

' `L``+

LA +no es necesario, pero se necesitaba un 8-a través.

Sugerencia 8: !{}. El bloque debía ir en el código, por lo que solo quedaban dos caracteres !, lo que significaba usar otro literal:

'!{}

Una alusión: -3u3. Con el uen su lugar desde el 8 al otro lado, comencé a colocar -3y 3en las esquinas donde ninguna otra pista se preocupaba por ellos. Pero luego necesitaba un men la parte inferior. Creo que hay varias maneras de obtener una 3con _m_, pero la más sencilla estaba tomando la raíz cuadrada de 9:

-3 'u9mq

Sugerencia C: -1. Ya tenía el decremento allí, así que puse un lugar 0donde a nadie más le importaba:

0  (

Insinuar E: Stack: "". Bueno, esa fue la más simple. Simplemente llame al depurador:

ed
Martin Ender
fuente
Hobbies de Calvin ha hablado , la respuesta es válida. Lo
7

COTO, Javascript ES4, 37 Darks

 __________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
 ¯¯¯¯¯¯¯¯¯¯
  • 6 de ancho es 5+Math.PIo Math.PI+5; pero esto último dejaría que 'M' y 'h' se cruzaran en otras expresiones, parecía poco probable.
  • Una cruz tenía que ser una cuerda; con 4 en el medio parecía un escape, la única forma de tener espacio para eso es con "\x48I".
  • 2 abajo ahora termina en una cadena, por lo que probablemente se agrega "pac" a un número; volveremos a eso.
  • 8 ac es ahora xxxa, evaluando a cero, entonces -a + a? a + -a? 3 + -a? a+-ase veía mejor ya que me dio lo que parecía un char en una cadena en 1dn.
  • 1 abajo contenía: 5, que solo podía ser gramática legal en {x:5}xxa'x. Como el valor devuelto es 5, debe extraerlo del objeto, lo {x:5}['a']que significa que el carácter final que falta también es un:{a:5}['a']
  • 1 de ancho ahora tiene {al principio. Supuse que se trataba de una tarea de arenque rojo, lo intenté t={}=51y funcionó. ¡No sabía eso!
  • 2 abajo ahora tiene 5xxax"pac"=> "2pac". Esto tiene que ser 5-a+"pac", de alguna manera, por lo que el segundo personaje tiene que ser ''. para el literal de coma flotante.
  • 7 ac es ahora [xx"xxxx], devolviendo "90". Entonces, esto tiene que ser una matriz literal con el valor extraído; solo hay espacio para un valor, así que tenemos [xx"xx][0]. No hay espacio para dos cuerdas allí, pero tampoco "9"+0o en 9+"0"forma.
  • 3 dn; 3072 es 3 * 1024; el poder de 2 es sospechoso, y ya tenía 'I' allí bloqueando otras formas de obtener grandes números (como 1eX). Entonces, adivinó el cambio de bits; 6<<Iresultó ser la respuesta, dejando +0 para agregar al final.
  • 4 ac ahora contenía un operador de comparación; y el segundo carácter tenía que ser un operador unario válido (para encajar después de 't =' e 'I'). Supuse '-', y hay varias soluciones posibles izquierda ( I-I<4, I-6<4, etc.)
  • 5 dn ahora contenidos -x..]xxx4. El "..." me arrojó: solo hay un par de formas en que puede ser una sintaxis legal y es por eso que pregunté si ES4 es lo que se pretendía: ¿era esta una característica extraña de esa especificación abandonada? Pero luego vi que se trataba de un arenque rojo; -""es NaN, así que -"..]"xx4debe ser lo que hay allí: una comparación con NaN, devolviendo falso; '==' servirá, pero necesita mirar la última respuesta para confirmar ...
  • 9ac tenía varias soluciones posibles, pero la restricción de caracteres que se permitiría para 5dn me hizo pensar que esta era otra tarea más para el arenque rojo; algo =-10. Para ser sincero, también miré la versión anterior de 9dn, y me di cuenta de que debe ser algo =top(para recuperar una ventana). La variable asignada a podría ser ao I, no importa.

Rompecabezas complicado!

bazzargh
fuente
4

rompecabezas de Python de grc

solución de crucigramas grc

Para todas las largas expresiones de punto flotante, hice un programa en C ++ para generar expresiones matemáticas de Python por la fuerza y ​​las evalúa. Se supone que todos los números son de coma flotante y solo admite operadores +, -, *, /, //, ** y ~. Lo usé para obtener cada pista de más de 5 caracteres, excepto a**9*27%bel hash. Con 6 o menos espacios en blanco, termina en un par de segundos, mientras que hay un poco de espera para 7.

Feersum
fuente
3

Solución al rompecabezas MATLAB de COTO

Supongo que jugué golf bastante bien, ya que hay 14 espacios.

rejilla de solución

Este script de prueba:

g=4;
o=magic(3);
D=@disp;

D(max([  2]));
D( i^3);
D(o^0);
D(6 -7+eye  );
D((i));
D(.1  ^5* g );
D(~2);
D(diag(~o)  );

D(asin (1)*i);
D((93+7) +~g);
D(  10e15);
D(2*ones (2));
D(02 ^  9 );
D(-i );
D(~o);

produce el siguiente resultado:

     2

        0 - 1.0000i

     1     0     0
     0     1     0
     0     0     1

     0

        0 + 1.0000i

   4.0000e-05

     0

     0
     0
     0

        0 + 1.5708i

   100

   1.0000e+16

     2     2
     2     2

   512

        0 - 1.0000i

     0     0     0
     0     0     0
     0     0     0
Feersum
fuente
Buen espectaculo. Algunos espacios que no esperaba, pero también hay bastantes en la clave. Voy a publicar eso ahora. ;)
COTO