Twoim zadaniem jest przyjmowanie liczby dodatniej jako wartości wejściowej, n i wyprowadzanie długości najdłuższej reprezentacji rep cyfry n w dowolnej bazie. Na przykład 7 można przedstawić jako jeden z poniższych
111_2
21_3
13_4
12_5
11_6
10_7
7_8
REP-cyfr 111_2
i 11_6
, 111_2
jest już więc nasza odpowiedź jest 3.
To jest pytanie w golfa kodu, więc odpowiedzi będą oceniane w bajtach, przy czym mniej bajtów będzie lepszych.
Przypadki testowe
1 -> 1
2 -> 1
3 -> 2
4 -> 2
5 -> 2
6 -> 2
7 -> 3
8 -> 2
9 -> 2
10 -> 2
11 -> 2
26 -> 3
63 -> 6
1023-> 10
Przykładowa implementacja
Oto implementacja w Haskell, której można użyć do wygenerowania większej liczby przypadków testowych.
f 0 y=[]
f x y=f(div x y)y++[mod x y]
s x=all(==x!!0)x
g x=maximum$map(length.f x)$filter(s.f x)[2..x+1]
code-golf
base-conversion
Post Rock Garf Hunter
źródło
źródło
base > 1
?222
w bazie 3.Odpowiedzi:
Galaretka , 9 bajtów
Monadyczny link przyjmujący i zwracający liczby
Wypróbuj online! lub zobacz zestaw testowy (dane wejściowe od 1 do 32 włącznie).
W jaki sposób?
... a może powinienem był zrobić:
Dla
Lo1
z.źródło
ZL
L€Ṁ
JavaScript (ES6), 62 bajty
źródło
Haskell ,
868179 bajtów2 bajty zapisane dzięki Laikoni
Wypróbuj online!
Ponieważ to trochę umarło, oto moje podejście. To golfowa wersja przykładowego kodu, który stworzyłam na to pytanie. Myślę, że zdecydowanie może być krótszy. Pomyślałem, że to tam opublikuję.
źródło
length.head.filter(all=<<(==).head).(<$>[2..]).(!)
.Łuska ,
13 lat11 bajtów-2 bajty dzięki zgarb
Wypróbuj online!
źródło
mm
może byćM
iṠoΛ=←
może byćȯ¬tu
. Nie ma jeszcze wbudowanej funkcji sprawdzania, czy wszystkie elementy listy są równe ...ΓoΛ=
działa również jako cztery bajtyM
powinniśmy być w dokumentach, skoro już to mamy. Powinienem to naprawić. Ale to w zasadzie dualnośćṀ
.Mathematica, 71 bajtów
Wypróbuj online!
źródło
05AB1E , 8 bajtów
Wypróbuj online!
-1 dzięki kalsowerus .
źródło
L>вʒË}нg
dla 8 bajtówBrachylog , 12 bajtów
Wypróbuj online!
źródło
Python 3 ,
9287 bajtów5 bajtów dzięki Halvardowi Hummelowi.
Wypróbuj online!
źródło
Mathematica, 58 bajtów
Zgłasza błąd (ponieważ baza-1 nie jest prawidłową bazą), ale można ją bezpiecznie zignorować.
Oczywiście, można przyjąć długość pierwszego repdigit (
FirstCase
), ponieważ liczby w niższych bazach nie mogą być krótsze niż w wyższych bazach.źródło
CJam (17 bajtów)
Zestaw testów online . Jest to anonimowy blok (funkcja), który przyjmuje liczbę całkowitą na stosie i pozostawia liczbę całkowitą na stosie.
Działa z brutalną siłą, wykorzystując
3
jako bazę awaryjną do obsługi specjalnych przypadków (wejściowych1
lub2
).źródło
Perl 6 , 49 bajtów
Wypróbuj online!
Wyjaśnienie
Metoda polymod jest uogólnieniem Pythona
divmod
: wykonuje wielokrotne dzielenie liczb całkowitych przy użyciu danej listy dzielników i zwraca resztę pośrednią.Można go użyć do rozłożenia ilości na wiele jednostek:
Gdy mija sekwencję leniwą jako listę dzielników,
polymod
zatrzymuje się, gdy iloraz osiągnie zero. Zatem, dając mu nieskończone powtórzenie tej samej liczby, rozkłada dane wejściowe na cyfry tej podstawy:Używam tego tutaj, ponieważ pozwala na arbitralnie wysokie zasady, w przeciwieństwie do
.base
metody opartej na łańcuchach , która obsługuje tylko do podstawy 36.źródło
[]
wokółpolymod
zmieniając$_
się@_
TI-BASIC, 37 bajtów
Monituje o N, zwraca dane wyjściowe w Ans.
Wyjaśnienie
Jako przegląd, dla każdej możliwej zasady B w sekwencji najpierw oblicza liczbę cyfr N, gdy jest reprezentowana w podstawie B, a następnie sprawdza, czy N jest podzielna przez wartość reprezentowaną przez tę samą liczbę 1 cyfr w podstawie B.
źródło
Pyth , 13 bajtów
Wypróbuj online!
źródło
Java 8, 111 bajtów
Liczba bajtów 111 jest również cyfrą rep. ;)
Wyjaśnienie:
Wypróbuj tutaj.
źródło
Java 8, 79 bajtów
Lambda od
Integer
doInteger
.Niegolfowana lambda
Sprawdza radie w kolejności rosnącej od 2, aż do znalezienia cyfry rep cyfry. Opiera się na fakcie, że najmniejszy taki podstawa odpowiada reprezentacji z największą liczbą cyfr.
m
jest kopią danych wejściowych,b
jest podstawką il
jest liczbą sprawdzanych cyfr (i ostatecznie długościąb
reprezentacji podstawki ).źródło
Burleska, 24 bajty
(patrz poprawne rozwiązanie poniżej)
Zobacz w akcji .
Przynajmniej jeśli moja intuicja ma rację, że powtórne przedstawienie zawsze będzie najdłuższe? W przeciwnym razie uhm ...
źródło