Divano 2048: quanto più fino al 2048?


20

Ho appena provato un gioco chiamato Couch 2048 .
(Nota: dovresti dare un'occhiata per capire meglio questa domanda.)
Dato che non è stato molto emozionante per me, mi sono chiesto 'Quanto più fino al 2048 !?'
Questo mi ha ispirato a pubblicare una sfida, perché calcolare questo non è facile come pensavo.

Il tuo obiettivo:
dato un elenco di palline sul divano, devi produrre quante palline con un valore di 2 devono cadere dal cielo in modo da poter vincere la partita (raggiungendo la pallina 2048).

  • Supponiamo che l'input sia valido.
  • Supponiamo che il giocatore non lascerà cadere alcuna palla.
  • Supponiamo che le palle che cadono dal cielo abbiano sempre un valore di 2, come ho già detto.
  • Esempi di output validi: 3, "4", [5], ["6"]

Modifica:
dovrei chiarire qualcosa:
- Devi stampare il minor numero di 2 necessari.

Casi di prova:
[2048] -> 0 hai già vinto
[1024,1024] -> 0Non hai bisogno di più palle per vincere
[1024,512,256,128,64,32,16,8,4,2] -> 1Una palla richiesta per 'attivare la catena'
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

Note :
Non sono un madrelingua. Dimmi se hai notato un errore di battitura o un testo non grammaticale.
Se qualcosa non è chiaro, chiedere nei commenti.


perchè [4,16,64] -> 22?
l4m2

3
Benvenuti in PPCG. Sembra che questa sfida sia: aggiungere tutti gli elementi dell'array, sottrarre 2048e dividere per 2- se è così, si potrebbe voler ricontrollare l'ultimo caso di prova - in caso contrario, si prega di usarlo come esempio per spiegare perché l'output non è 't 982.
Shaggy,

1
@Shaggy thx per aver notato un errore sciocco

4
Woah, non ho pensato che la mia prima sfida avrà 7 risposte e 2 voti nella prima ora! E ho raggiunto ~ 28 persone!

2
Ehi, downvoter: spiega il tuo punto di vista! È necessario per migliorare la sfida!

Risposte:



8

Brain-Flak , 72 byte

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

Provalo online!

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

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

1
Grazie! Sono interessato a imparare Brain-Flak e la tua spiegazione è stata utile.
Galen Ivanov,








2

Catholicon , 5 byte

-`L̇½Ṗ

Spiegazione:

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

1
È un nuovo linguaggio del golf che sento? :)
ETHproductions

1
+1 per la nuova lingua. Un altro da imparare </sigh>
ElPedro,





1

perl -aE, 27 byte

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

Questo legge una riga con numeri (spazi separati) da STDINe scrive la risposta a STDOUT.

Ciò che fa è sottrarre tutti i numeri dall'input dal 2048 e divide il resto per 2. L' -aopzione mette l'array @F(un numero per elemento). Se interpoliamo un array in una stringa (che è ciò che stiamo facendo qui), perl inserisce il valore $"tra gli elementi. La variabile poco utilizzata $:è predefinita \n-; e poiché lo spazio bianco tra i token viene ignorato, il risultato sottrae tutti i numeri dal 2048. Il evalcalcolo viene eseguito .







0

AWK, 26 byte

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

I numeri di input sono separati da newline (cioè uno per riga)


0

Neim, 6 byte

Abbastanza nuovo per Neim, ma ha funzionato

𝐬ᚺςᚫᛦ𝕤

Spiegazione:

  𝐬         : 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

Provalo online!






Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.