Esinlenerek XKCD .
Zorluk, bir sayının oyunda 2048 iyi bir kombinasyon yapıp yapmayacağını belirlemektir . Girişiniz aşağıdaki gibi bir sayı olacaktır:
8224
Ve çıkış bu sayı bu giriş için olacağını iyi 2048 combonuzu yapacak mı olacak trueyoksa yesveya 1veya pozitif sonucun göstergesi herhangi başka bir yol.
Oyunun aşina olmayanlar için, burada basit bir açıklama verilmiştir: ikisinin güçler böyle bir ızgara üzerinde düzenlenir: [2] [2]. Fayanslar herhangi bir yönde hareket ettirilebilir ve iki özdeş fayans buluşuyorsa, ikisinin bir sonraki gücü haline gelirler (böylece [2] [2]sola veya sağa taşındığında [4]). Veya oyunu burada deneyebilirsiniz .
"İyi bir 2048 kombinasyonu" ne anlama geliyor? "2048" oyunda ise tek bir sayıya birleştirilebilecek herhangi bir sayı anlamına gelir. (Sıfır, boş alan anlamına gelir ve gerekirse yok sayılabilir.) Sayıların büyük olasılıkla birden fazla basamak olabileceğini unutmayın! Ancak rakamlar gerekir değil hamle arasında değişir. Bazı örnekler / test örnekleri (iyi bir kombinasyonu belirten "İyi" ve iyi olmayan "Kötü" anlamına gelir):
- İyi: 8224 (8224 -> 844 -> 88 -> 16)
- İyi: 2222 (2222 -> 44 -> 8)
- İyi: 22048 (22048 -> 448 -> 88 -> 16)
- Kötü: 20482 (dış 2'leri birleştiremez veya 2048 ve 2'yi birleştiremezsiniz)
- İyi: 20482048 (20482048 -> 4096)
- Kötü: 210241024 (210241024 -> 22048, ancak şimdi [2] [2048] ve sayı hareketler arasında değişemediğinden birleştirilemiyor)
- İyi: 2048 (zaten bir sayı)
- Kötü: 2047 (2'nin gücü değil)
- Kötü: 11 (oyunda 1 yok)
- İyi: 000040000000 (sıfırlar boş alanlardır)
Çeşitli kurallar:
- Girdi makul herhangi bir yerden olabilir, yani STDIN, işlev bağımsız değişkeni, dosya vb.
- Çıktı ayrıca makul bir yerde olabilir, yani STDOUT, işlev dönüş değeri, dosya vb.
- Izgara boyutunu yok sayın -
22222222yine de doğru çıkmalıdır. - Bu, ikisinin gücü olduğu sürece, s sayısının ne olabileceği konusunda maksimum değildir. Bu nedenle, olası sayılar 0'dan büyük iki güçtür.
- Belirsizlik yaratan sıfırlardan endişe edenler için durum böyle değil. Örneğin,
22048ya[2] [2048]da olarak ayrıştırılabilir[2] [2] [0] [4] [8]. Birincisi çalışmıyor, ikincisi işe yarıyor, bu yüzden doğru çıktı almalı. - Bu kod golf , bu yüzden bayt içindeki en kısa kod kazanacak!
22048çıktı almalı goodancak bu doğru değil. Sen birleştirmek olamaz 2ile 2048ve ızgara olan 4x4tüm numaralar 5 hücrelerini elde edersiniz ayrı olmalıdır eğer. yani belki kaldırmak gerekir 0? Ayrıca oyunun durduğu için 5. örneğiniz geçersiz görünüyor 2048:)
1