Couch 2048: Bao nhiêu nữa đến năm 2048?


20

Tôi vừa thử một trò chơi tên là Couch 2048 .
(Lưu ý: Bạn nên có một cái nhìn để hiểu rõ hơn về câu hỏi này.)
Vì nó không thú vị lắm đối với tôi, tôi đã tự hỏi mình 'Còn bao nhiêu nữa cho đến năm 2048!?'
Điều đó truyền cảm hứng cho tôi để đăng một thử thách, bởi vì tính toán này không dễ như tôi nghĩ.

Mục tiêu của bạn:
Đưa ra một danh sách các quả bóng trên ghế sofa, bạn phải xuất ra bao nhiêu quả bóng có giá trị 2 phải từ trên trời rơi xuống để người ta có thể giành chiến thắng trong trò chơi (bằng cách đạt được quả bóng 2048).

  • Giả sử đầu vào là hợp lệ.
  • Giả sử người chơi sẽ không thả bất kỳ quả bóng nào.
  • Giả sử những quả bóng từ trên trời rơi xuống luôn có giá trị là 2, như tôi đã nói.
  • Ví dụ đầu ra hợp lệ: 3, "4", [5], ["6"]

Chỉnh sửa:
Tôi nên làm rõ điều gì đó:
- Bạn phải in số lượng nhỏ nhất 2 giây cần thiết.

Các trường hợp kiểm tra:
[2048] -> 0 Bạn đã thắng
[1024,1024] -> 0Bạn không cần thêm bóng để giành được
[1024,512,256,128,64,32,16,8,4,2] -> 1Một bóng cần thiết để 'kích hoạt chuỗi'
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

Ghi chú :
Tôi không phải là người bản ngữ - Hãy cho tôi biết nếu bạn phát hiện một lỗi đánh máy hoặc một số văn bản phi ngữ pháp.
Nếu có gì đó không rõ ràng, hãy hỏi ý kiến.


tại sao [4,16,64] -> 22?
l4m2

3
Chào mừng đến với PPCG. Có vẻ như thử thách này là: thêm tất cả các phần tử trong mảng, trừ 2048và chia cho 2- nếu vậy, bạn có thể muốn kiểm tra lại trường hợp kiểm tra cuối cùng - nếu không, vui lòng sử dụng nó làm ví dụ để giải thích lý do tại sao đầu ra không 't 982.
Shaggy

1
@Shaggy thx vì nhận thấy một lỗi ngớ ngẩn

4
Ái chà, tôi không nghĩ thử thách đầu tiên của mình sẽ có 7 câu trả lời và 2 lần nâng cấp trong giờ đầu tiên! Và tôi đã đạt tới ~ 28 người!

2
Hey, downvoter: giải thích quan điểm của bạn! Đó là cần thiết cho những thách thức để cải thiện!

Câu trả lời:



8

Brain-Flak , 72 byte

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

Hãy thử trực tuyến!

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

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

1
Cảm ơn bạn! Tôi thích học Brain-Flak và lời giải thích của bạn rất hữu ích.
Galen Ivanov








2

Catholicon , 5 byte

-`L̇½Ṗ

Giải trình:

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

1
Có phải đó là một ngôn ngữ chơi golf mới mà tôi ngửi thấy? :)
Sản phẩm ETH

1
+1 cho ngôn ngữ mới. Một số khác để tìm hiểu </ thở dài>
ElPedro





1

perl -aE, 27 byte

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

Điều này đọc một dòng với các số (khoảng trắng được phân tách) từ STDINvà viết câu trả lời cho STDOUT.

Những gì nó làm là trừ tất cả các số từ đầu vào từ năm 2048 và nó chia phần còn lại cho 2. Công -atắc đặt số trong mảng @F(một số cho mỗi phần tử). Nếu chúng ta nội suy một mảng thành một chuỗi (đó là những gì chúng ta đang làm ở đây), perl sẽ đặt giá trị $"giữa các phần tử. Biến ít được sử dụng $:là mặc định \n-; và vì khoảng trắng giữa các mã thông báo bị bỏ qua, kết quả là trừ tất cả các số từ năm 2048. Việc evaltính toán thực hiện.







0

AWK, 26 byte

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

Các số đầu vào được phân tách bằng các dòng mới (tức là một trên mỗi dòng)


0

Neim, 6 byte

Khá mới với Neim nhưng nó đã hoạt động

𝐬ᚺςᚫᛦ𝕤

Giải trình:

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

Hãy thử trực tuyến!






Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.