Najstarsza polska kopalnia soli, znajdująca się w Bochni *, powstała w 1248 roku, co możemy uznać za magiczną liczbę . Widzimy, że jest równy 4 cyfry z sekwencji exponentiations: .
Ponieważ data jest w rzeczywistości 4 cyframi z sekwencji, możemy ją wydłużyć. Możemy powtarzać ten proces, aż osiągniemy nieskończoność. Sekwencja wyglądałaby tak, gdybyśmy ograniczyli ją do liczby2048
124816326412825651210242048
Aby wyglądało to trochę lepiej, możemy oddzielić liczby:
1|2|4|8|16|32|64|128|256|512|1024|2048
Wypróbujmy niestandardową, dłuższą sekwencję niż data. Powiedzmy, że chcemy, aby miał 5 cyfr - istnieje więcej niż jedna możliwość:
24816
81632
64128
Lub 3-cyfrowe:
124
248
816
Możemy również dodać do tego 3-cyfrowe liczby, ale powiedzmy, że sekwencja musi mieć co najmniej dwie liczby .
* Brak informacji na ten temat w angielskiej Wikipedii. Jeśli wejdziesz w polską wersję - to jest. Jeśli odwiedzisz kopalnię, pracownicy powiedzą ci również, że rozpoczęła się w 1248 roku.
Wyzwanie
Utwórz sekwencję potęgowania, jak w powyższych przykładach, z 2 jako zasadą.
Biorąc pod uwagę liczbę z zakresu 2-27, wypisz wszystkie możliwe części sekwencji (2048 jeden lub większy, jeśli chcesz) z liczbą cyfr równą wartości wejściowej. Nie można wyciąć liczby, więc wynik podobny do 481
jest nieprawidłowy, ponieważ 16 jest przecięte na pół.
Zasady:
- Standardowe luki są zabronione.
- Możesz założyć, że na wejściu znajduje się liczba z zakresu.
- Twój program może akceptować dane wejściowe większe niż zakres (28+), ale to nie zwiększy / nie zmniejszy wyniku.
- Spacje wyjściowe są ignorowane. Możesz generować jak
124
lub lubić4 8 16
. - Różne możliwości powinny być oddzielone dowolnym znakiem z listy:
,./|
lub wierszem. - Możesz wyprowadzać dane jako tablicę.
- Każda możliwość powinna obejmować co najmniej 2 różne liczby .
- Musisz wyjście część sekwencji, nie można mieszać numery, które nie są obok siebie, jak:
14
. - Wyjściowe kodowanie jest niedozwolone, jednak można na stałe zakodować ciąg / liczbę / tablicę zawierającą pełną sekwencję.
- Wejście 27 powinno zwrócić pełną sekwencję 2048.
- Jak już wspomniano wcześniej, nie wycinaj liczb . Dawny.
16
musisz zostać16
- nie możesz użyć481
- musisz użyć4816
. - EDYCJA: Mogłem powiedzieć coś złego; 2048 to ostatnia liczba, którą Twój program powinien obsługiwać, możesz dodać obsługę większych int.
Przypadki testowe
Wejście: 2
12, 24, 48
Wejście: 3
124, 248, 816
Wejście: 4
1248, 4816, 1632, 3264
Wejście: 5
24816, 81632, 64128
Wejście: 27
124816326412825651210242048
A później numery ...
Jeśli popełniłem błąd w jednym z przypadków testowych, powiedz mi lub edytuj pytanie.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
źródło
Odpowiedzi:
05AB1E ,
121110 bajtówObsługuje sekwencję do
2^95 = 39614081257132168796771975168
Wypróbuj online!
Wyjaśnienie
Zapisano 1 bajt dzięki Erikowi Outgolferowi
Zapisano 1 bajt dzięki Riley
źródło
X›
może być≠
Y₃Ým
być₃Ýo
?Pyth,
22212017 bajtówWypróbuj online
Wyjaśnienie
źródło
fqQlTmjkdftlT.:m^2d12
fqQlTjLkftlT.:m^2d12
Galaretka ,
19 1816 bajtówMoże być teraz krótsze rozwiązanie, w którym możemy zastosować dowolną wartość odcięcia (nie tylko 2048), chociaż ta zmiana specyfikacji pozwoliła zaoszczędzić jeden bajt od tej implementacji poprzez przejście do wartości
granicznej 32768. - Tak. ..
-2 bajty dzięki Erikowi Outgolferowi (użycie,
V
aby umożliwić niejawny poprawny argument filtra i dokręcenie) -tak, jest bardzo podobny do jego nieefektywnego; idź głosować na jego !
Monadyczny link pobierający liczbę i zwracający listę liczb.
Wypróbuj online!
W jaki sposób?
źródło
V
i to będzie działać na 16 zamiast 1000:⁴Ḷ2*Ẇṫ17VDL$⁼¥Ðf
.Perl 6 ,
6259 bajtówWypróbuj online!
źródło
Japt ,
22201916 bajtówObsługuje dane wejściowe do,
639
ale odstępy zaczynają pojawiać się w sekwencji po234
(Zobacz pełną listę obsługiwanych zakresów danych wejściowych tutaj ). Zwraca tablicę ciągów.Sprawdź to
I
(64) można zastąpićL
(100), ale zajmiemy się notacjami naukowymi i niedokładnościami precyzji. Odfiltrowanie ich oczywiście zwiększyłoby liczbę bajtów i tylko zwiększyło maksymalną liczbę danych wejściowych do736
.źródło
Python 2 , 105 bajtów
Wypróbuj online!
źródło
Łuska ,
1817 bajtówDane wyjściowe są oddzielone znakami nowej linii
Wypróbuj online!
W jaki sposób?
źródło
Galaretka , 16 bajtów
Wypróbuj online!
Uwaga: bardzo nieefektywny. Zwraca listę liczb.
źródło
ȷ
s (tj.1000
)20
S (dolny górny limit) .[12, 24, 48]
.JavaScript (ES7),
102100 bajtówWyświetla wszystkie pasujące podsekwencje z
alert()
.Próbny
Uwaga : ten fragment kodu buforuje wyniki i drukuje je na konsoli w celu ułatwienia obsługi.
Pokaż fragment kodu
źródło
Haskell ,
7267 bajtówWypróbuj online!
Zaoszczędź 5 bajtów dzięki Laikoni
Użyłem limitu,
99
ponieważ2^99
ma długość> 27
.źródło
length$(show$2^44)++(show$2^45)==28
.Mathematica, 122 bajty
Wejście
Wynik
źródło
C, 170 bajtów
Wypróbuj online!
Rozwinięty:
źródło
R , 99 bajtów
Wypróbuj online!
źródło
Perl 5 , 76 bajtów
75 bajtów kodu + 1 dla
-a
Wypróbuj online!
źródło
Japt, 24 bajty
Po pewnym czasie od opublikowania tego pytania nauczyłem się pierwszego języka golfowego. Z tego powodu postanowiłem spróbować szczęścia tutaj.
Wypróbuj online!
Wynik nie jest najlepszy, nie jest nawet dobry, ale zajęło mi to dużo czasu. -.
Tracę dużo punktów, ponieważ z niektórych powodów ã może zwrócić tylko tablice x długości ... Może to być nawet ~ 10 bajtów, jeśli nie to.
Wyjaśnienie:
źródło
Ruby , 94 bajty
Wypróbuj online!
źródło