カウチ2048:2048まであとどれくらい?


20

Couch 2048というゲームを試しました。
(注:この質問をよりよく理解するために一見する必要があります。)
それは私にとってあまりエキサイティングではなかったので、私は自分自身に「2048年まであとどれくらい!?」
それは私が思ったほど簡単ではないのでこれを計算するので、私は挑戦を投稿するように促しました。

あなたの目標:
ソファにあるボールのリストが与えられたら、ゲームに勝つために(2048ボールに到達するために)値が2のボールを空から降ろさなければならない数を出力する必要があります。

  • 入力が有効であると仮定します。
  • プレーヤーがボールを落とさないと仮定します。
  • 私が言ったように、空から落ちるボールの値は常に2であると仮定します。
  • 有効な出力例:3、 "4"、[5]、["6"]

編集:
私は何かを明確にする必要があります:
- 必要な2の最小量を印刷する必要があります。

テストケース:
[2048] -> 0あなたはすでに獲得した
[1024,1024] -> 0あなたが勝つために任意のより多くのボールを必要としない
[1024,512,256,128,64,32,16,8,4,2] -> 11つのボールをするために必要な「チェーンを活性化させます」
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982


私はネイティブスピーカーではありません-誤字や文法的でないテキストを見つけた場合は教えてください。
不明な点がある場合は、コメントでお尋ねください。


なんで[4,16,64] -> 22
l4m2

3
PPCGへようこそ。この課題は次のように見えます:配列内のすべての要素を追加し、減算し2048、除算します2-もしそうであれば、最後のテストケースをダブルチェックしたいかもしれません-そうでなければ、出力がなぜないのかを説明する例として使用してください「T 982
シャギー

1
愚かな間違いに気付いた@Shaggy thx

4
うわー、最初のチャレンジで最初の1時間で7つの回答と2つのアップ投票が行われるとは思っていませんでした!そして、私は〜28人に達しました!

2
ちょっと、投票者:あなたの視点を説明してください!チャレンジを改善する必要があります!

回答:



8

Brain-Flak、72バイト

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

オンラインでお試しください!

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

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

1
ありがとうございました!Brain-Flakの学習に興味があり、あなたの説明は役に立ちました。
ガレンイワノフ








2

Catholicon、5バイト

-`L̇½Ṗ

説明:

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

1
それは私が嗅ぐ新しいゴルフ言語ですか?:)
ETHproductions

1
新しい言語の場合は+1。もう1つ学ぶ</ sigh>
ElPedro





1

perl -aE、27バイト

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

これは、(空白文字で区切られた)から行を読み取り、STDINその答えをに書き込みますSTDOUT

これは、2048から入力からすべての数値を減算し、残りを2で除算します。-aスイッチは配列に入れます@F(要素ごとに1つの数値)。配列を文字列に補間する場合(ここで行っていることです)、perlは$"要素間にの値を入れます。ほとんど使用されない変数$:はデフォルトです\n-。トークン間の空白は無視されるため、結果は2048からすべての数値を減算evalします。計算が行われます。







0

AWK、26バイト

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

入力番号は改行で区切られます(1行に1つ)


0

ニーム、6バイト

ニームにとってはかなり新しいが、機能するようになった

𝐬ᚺςᚫᛦ𝕤

説明:

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

オンラインでお試しください!






弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.