Couch 2048: Combien de plus jusqu'en 2048?

20

Je viens d'essayer un jeu appelé Couch 2048 .
(Remarque: vous devriez jeter un coup d'œil pour mieux comprendre cette question.)
Comme ce n'était pas très excitant pour moi, je me demandais 'combien de plus jusqu'en 2048!?'
Cela m'a inspiré pour poster un défi, car le calcul n'est pas aussi simple que je le pensais.

Votre objectif: étant
donné une liste de boules sur le canapé, vous devez générer le nombre de boules d'une valeur de 2 qui doivent tomber du ciel pour que l'on puisse gagner la partie (en atteignant la boule 2048).

  • Supposons que l'entrée est valide.
  • Supposons que le joueur ne laisse tomber aucune balle.
  • Supposons que les boules qui tombent du ciel ont toujours une valeur de 2, comme je l'ai dit.
  • Exemples de sortie valides: 3, "4", [5], ["6"]

Edit:
je devrais clarifier quelque chose:
- Vous devez imprimer la plus petite quantité de 2 nécessaire.

Cas de test:
[2048] -> 0 vous avez déjà gagné
[1024,1024] -> 0Vous n'avez plus besoin de balles pour gagner
[1024,512,256,128,64,32,16,8,4,2] -> 1Une balle requise pour «activer la chaîne»
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

Remarques :
je ne suis pas un locuteur natif - dites-moi si vous avez repéré une faute de frappe ou du texte non grammatical.
Si quelque chose n'est pas clair, demandez dans les commentaires.


la source
pourquoi [4,16,64] -> 22?
l4m2
3
Bienvenue chez PPCG. Il semble que ce défi soit le suivant: ajoutez tous les éléments du tableau, soustrayez 2048et divisez par 2- si c'est le cas, vous voudrez peut-être revérifier le dernier cas de test - sinon, utilisez-le comme exemple pour expliquer pourquoi la sortie n'est pas 't 982.
Shaggy
1
@Shaggy thx pour avoir remarqué une erreur stupide
4
Woah, je ne pensais pas que mon premier défi aurait 7 réponses et 2 votes positifs dans la première heure! Et j'ai atteint ~ 28 personnes!
2
Hé, downvoter: expliquez votre point de vue! Il faut que le défi s'améliore!

Réponses:

11

Java 8, 17 octets

s->1024-s.sum()/2

Port de la réponse JavaScript de @LuisFelipeDeJesusMunoz .

Essayez-le en ligne.

Explication:

s->           // Method with IntStream parameter and int return-type
  1024-       //  Return 1024, minus:
   s.sum()    //   The sum of the input-IntStream
          /2  //   Divided by 2
Kevin Cruijssen
la source
11
Ce sentiment lorsque Java bat à la fois python (à cause de la syntaxe lambda) et javascript (à cause de la somme)
Quintec
8

Brain-Flak , 72 octets

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

Essayez-le en ligne!

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

([{}]                                        ) # Subtract that from...
     ((((((((()()()()){}){}){}){}){}){}){}){}  # 1024
Riley
la source
1
Je vous remercie! Je suis intéressé à apprendre Brain-Flak et votre explication a été utile.
Galen Ivanov
2

Catholicon , 5 octets

-`L̇½Ṗ

Explication:

-      subtract
 `L̇    1024
       from
   ½   half of the
    Ṗ  sum [of the input]
Okx
la source
1
Est-ce une nouvelle langue de golf que je sens? :)
ETHproductions
1
+1 pour la nouvelle langue. Un autre à apprendre </sigh>
ElPedro
2

TI-Basic, 8 octets

4^5-.5sum(Ans
Timtech
la source
1

JavaScript, 28 octets

a=>a.map(n=>x-=n/2,x=1024)|x

Essayez-le en ligne

Hirsute
la source
1

Gelée , 7 6 octets

HSạ⁽¡ç

Essayez-le en ligne!

Explication:

HSạ⁽¡ç    Example input: [4,16,64]
H         Halve input. [2, 8, 32]
 S        Sum. 42
   ⁽¡ç    Number 1024.
  ạ       Difference. 982

-1 octet en utilisant un nombre en base 250

Camarade SparklePony
la source
1

perl -aE, 27 octets

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

Cela lit une ligne avec des nombres (séparés par des espaces) STDINet écrit la réponse STDOUT.

Ce qu'il fait, c'est soustraire tous les nombres de l'entrée de 2048, et il divise le reste par 2. Le -acommutateur place le dans le tableau @F(un nombre par élément). Si nous interpolons un tableau dans une chaîne (ce que nous faisons ici), perl place la valeur $"entre les éléments. La variable peu utilisée $:est par défaut \n-; et comme l'espace blanc entre les jetons est ignoré, le résultat soustrait tous les nombres de 2048. Le evalfait le calcul.


la source
0

Perl 6 , 12 octets

1024-*.sum/2

Essayez-le en ligne!

Anonyme Quel que soit lambda qui prend une liste et renvoie un nombre.

Jo King
la source
0

AWK, 26 octets

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

Les numéros d'entrée sont séparés par des retours à la ligne (c'est-à-dire un par ligne)

iBug
la source
0

Neim, 6 octets

Assez nouveau pour Neim mais ça a fonctionné

𝐬ᚺςᚫᛦ𝕤

Explication:

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

Essayez-le en ligne!

LiefdeWen
la source
0

JAVA, 30 octets

2048-IntStream.of(a).sum()/2;
isaace
la source
0

F #, 24 octets

fun f->1024-List.sum f/2

1024 moins la somme divisée par 2.

Incarnation de l'ignorance
la source