Sofá 2048: ¿Cuánto más hasta 2048?


20

Acabo de probar un juego llamado Couch 2048 .
(Nota: Debería echar un vistazo para comprender mejor esta pregunta).
Dado que no fue muy emocionante para mí, me he estado preguntando '¿Cuánto más hasta 2048?'
Eso me inspiró a publicar un desafío, porque calcular esto no es tan fácil como pensaba.

Su objetivo:
Dada una lista de bolas en el sofá, debe extraer cuántas bolas con un valor de 2 deben caer del cielo para que uno pueda ganar el juego (alcanzando la bola 2048).

  • Suponga que la entrada es válida.
  • Suponga que el jugador no dejará caer ninguna bola.
  • Supongamos que las bolas que caen del cielo siempre tienen un valor de 2, como he dicho.
  • Ejemplos de salida válidos: 3, "4", [5], ["6"]

Editar:
debo aclarar algo:
- Tienes que imprimir la menor cantidad de 2s necesaria.

Casos de prueba:
[2048] -> 0 ya has ganado
[1024,1024] -> 0No necesitas más bolas para ganar
[1024,512,256,128,64,32,16,8,4,2] -> 1Se necesita una bola para 'activar la cadena'
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

Notas :
No soy un hablante nativo: dígame si vio un error tipográfico o algún texto no gramatical.
Si algo no está claro, pregunte en los comentarios.


¿Por qué [4,16,64] -> 22?
l4m2

3
Bienvenido a PPCG. Parece que este desafío es: agregar todos los elementos en la matriz, restar 2048y dividir por 2- si es así, es posible que desee verificar dos veces el último caso de prueba; si no, utilícelo como un ejemplo para explicar por qué la salida no está 't 982.
Shaggy

1
@Shaggy thx por notar un error tonto

44
¡Woah, no pensé que mi primer desafío tendría 7 respuestas y 2 votos a favor en la primera hora! ¡Y llegué a ~ 28 personas!

2
Hola, votante: ¡explica tu punto de vista! ¡Es necesario que el desafío mejore!

Respuestas:



8

Brain-Flak , 72 bytes

({{}})({<({}[()()])>()}{})([{}]((((((((()()()()){}){}){}){}){}){}){}){})

Pruébalo en línea!

({{}})                     # Sum entire stack
      (                  ) # Push:
       {<          >()}{}  #   The number of times you can...
         ({}[()()])        #   Subtract 2 before reaching 0

([{}]                                        ) # Subtract that from...
     ((((((((()()()()){}){}){}){}){}){}){}){}  # 1024

1
¡Gracias! Estoy interesado en aprender Brain-Flak y su explicación fue útil.
Galen Ivanov el








2

Catholicon , 5 bytes

-`L̇½Ṗ

Explicación:

-      subtract
 `L̇    1024
       from
   ½   half of the
    Ṗ  sum [of the input]

1
¿Es ese un nuevo lenguaje de golf que huelo? :)
ETHproductions

1
+1 para el nuevo idioma. Otro para aprender </
sigh





1

perl -aE, 27 bytes

$"=$:;say eval"(2048-@F)/2"

Esto lee una línea con números (espacios en blanco separados) STDINy escribe la respuesta STDOUT.

Lo que hace es restar todos los números de la entrada de 2048, y divide el resto por 2. El -ainterruptor coloca el en la matriz @F(un número por elemento). Si interpolamos una matriz en una cadena (que es lo que estamos haciendo aquí), perl coloca el valor de $"entre los elementos. La variable poco utilizada $:es predeterminada \n-; y dado que se ignora el espacio en blanco entre los tokens, el resultado es restar todos los números de 2048. Luego evalrealiza el cálculo.







0

AWK, 26 bytes

{s+=$1}END{print 1024-s/2}

Los números de entrada están separados por líneas nuevas (es decir, una por línea)


0

Neim, 6 bytes

Bastante nuevo para Neim pero lo tengo funcionando

𝐬ᚺςᚫᛦ𝕤

Explicación:

  𝐬         : Sum input
   ᚺ        : Divide by 2 (stack now [input summed and divided by 2])
    ς       : Variable set to 16 pushed to stack
     ᚫ      : Multiply by 2
      ᛦ     : Square (stack now [input summed and divided by 2, 1024])
       𝕤    : Subtract then absolute

Pruébalo en línea!






Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.