Rozważ nieskończony ciąg wszystkich nieujemnych liczb całkowitych dziesiętnych połączonych razem w kolejności (podobnie do stałej Champernowne ):
0123456789101112131415161718192021222324252627282930...979899100101102103...
Napisz program lub funkcję, która przyjmuje nieujemną liczbę całkowitą, która indeksuje (na podstawie 0) do tego nieskończonego ciągu. Wyprowadzać truthy wartość jeżeli cyfra indeksowany jest 0, w przeciwnym wypadku wyjście A falsy wartość jeżeli cyfra 1-9.
Najkrótszy kod w bajtach wygrywa.
Pierwsze 25 prawdomównych danych wejściowych to:
0
11
31
51
71
91
111
131
151
171
191
192
194
197
200
203
206
209
212
215
218
222
252
282
312
Uznanie, jeśli twój program jest efektywny pod względem pamięci, ale nie jest to wymagane.
code-golf
string
integer
decision-problem
Hobby Calvina
źródło
źródło
Odpowiedzi:
Haskell, 25 bajtów
Przykład użycia:
(<'1').((show=<<[0..])!!) 312
->True
źródło
05AB1E , 5 bajtów
Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
Mathematica,
4240 bajtówFunkcja anonimowa. Podejmuje szereg jako wejścia i wraca albo
True
czyFalse
jako wyjście. Dłuższe, ale bardziej wydajne (?) Rozwiązanie:źródło
CJam, 9 bajtów
Jest to nienazwany blok (funkcja), który przyjmuje liczbę całkowitą i odpowiednio zwraca 0 lub 1.
Wyjaśnienie:
Tłumacz online . Zauważ, że
~
ocenia blok. Alternatywnie możesz uruchomić ten zestaw testów, który używa,
do filtrowania pierwszych 1000 liczb w celu uzyskania prawdziwych wartości.źródło
MATL, 11 bajtów
Wypróbuj online!
Objaśnienie :
źródło
Brachylog ,
108 bajtów2 bajty dzięki Fatalize.
Wypróbuj online!
źródło
@e
wektoryzacjay@ec:?m0
działa, aby zaoszczędzić 2 bajty.#0
,#1
,#+
,#_
,#>
i#<
vectorize jak@e
robi. Niektóre predykaty, które wektoryzują, np. Rekursywnie+
lub*
nie wektoryzują rekursywnie do najniższego poziomu listy, i nie wykonują tego samego w zależności od struktury danych wejściowych.Perl 6 ,
2625 bajtówLambda, która przyjmuje liczbę jako dane wejściowe i zwraca a
True
lubFalse
.Wydajna pamięć.
Jak to działa
0..*
- Zbuduj zakres od 0 do nieskończoności.map(|*.comb, )
- Lazily iteruje zakres, zastępując każdą liczbę znakami reprezentującymi ciąg znaków i zwracając nową leniwą sekwencję.|
Utrzymuje nowa sekwencja spłaszczone.[$_]
- Weź element o indeksie zdefiniowanym przez (niejawnie zadeklarowany) parametr lambda$_
.+
- Przymusz to do liczby. (Ten krok jest potrzebny, ponieważ wymuszanie łańcucha bezpośrednio na wartość logiczną zawsze daje wartość True, chyba że łańcuch jest pusty.)!
- Przekształć go w wartość logiczną i zaneguj.( spróbuj online )
EDYCJA: -1 bajt dzięki b2gills.
źródło
{!+map(|*.comb,0..*)[$_]}
swój,{!+({|($++).comb}...*)[$_]}
zanim wpadłem na pomysł, zanim sprawdzę, czy jest już odpowiedź P6.!+
może być zastąpiona przez1>
Galaretka , 6 bajtów
Wypróbuj online! lub zweryfikuj wszystkie przypadki testowe .
Jak to działa
źródło
Python 3.5, 40 bajtów
Przetestować go na repl.it .
Jak to działa
Dla wejścia n ,
'%d'*-~n
powtarza ciąg formatu n + 1 razy.(*range(n),n)
rozpakowuje zakres [0, ..., n - 1] i zwraca krotkę (0, ..., n) ....%...
zastępuje każde wystąpienie % d odpowiednią liczbą całkowitą w zakresie, uzyskując ciąg 01234567891011 ... n .(...)[n]<'1'
wybiera znak o indeksie n i sprawdza, czy jest on mniejszy niż znak 1 .źródło
Python 3, 44 bajty
Anonimowa funkcja, która pobiera dane wejściowe za pomocą argumentów i zwraca
True
lubFalse
w razie potrzeby.Jak to działa
Wypróbuj na Ideone
źródło
Pyth,
87 bajtówDzięki @LeakyNun za -1 bajt
To moja pierwsza próba gry w golfa w Pyth.
Pełny program, który drukuje
True
lubFalse
odpowiednio.Wypróbuj online
Pierwsze 25 prawdziwych danych wejściowych
Jak to działa
źródło
SILOS , 141 bajtów
Wypróbuj online!
Wykorzystuje tylko 5 liczb całkowitych, maksymalna wydajność pamięci \ o /
Wyjaśnienie
Generujemy tyle cyfr, ile danych wejściowych w stałej Champernowne.
W głównej pętli wykonujemy następujące czynności:
100
cyfra s1234
jest uzyskiwana przez(1234/10)%10
gdzie/
jest podział podłogi.źródło
JavaScript (ES6), 45 bajtów + Kudos
Moja najlepsza wersja inna niż Kudos miała 34 bajty:
źródło
JavaScript (ES6), 47 bajtów
n=>[...Array(n+1)].reduce((a,_,i)=>a+i,'')[n]<1
źródło
JavaScript (ES6),
4233 bajtyPrzykład:
źródło
Groovy, 56 bajtów
Nic szczególnego, ale próbuję nowych rzeczy.
źródło
Perl, 24 bajty
Obejmuje +1 dla
-p
Uruchom z wejściem na STDIN:
wypisz 1 dla zera, nic innego
zero.pl
źródło
PHP, 36 bajtów
Drukuj,
1
jeśli argument dziesiętny jest Champernowne, w przeciwnym razie wypisz0
'' (pusty ciąg).źródło
Rubin,
3523 bajtówJest to anonimowa funkcja, która konkatenuje
[0..n]
, pobieran
indeks th i sprawdza, czy ten znak jest"0"
(mniejszy niż"1"
). Sugestie dotyczące gry w golfa mile widziane.Ungolfing
źródło
Właściwie
98 bajtówTa odpowiedź łączy zakres
[0..n]
, pobieran
indeks th i sprawdza, czy ten znak jest"0"
. Sugestie dotyczące gry w golfa mile widziane. Wypróbuj online!Ungolfing
źródło
Bash,
3128 bajtówDane wyjściowe są niepuste (prawda) lub puste (fałsz). Przetestuj na Ideone .
źródło
Julia,
2120 bajtówDzięki @LuisMendo za grę w golfa na 1 bajcie!
Wypróbuj online!
źródło
R,
6157 bajtówDzięki @plannapus za 4 bajty.
Tworzy wektor liczb 0: n (dla 0 indeksowania), tworzy ich ciąg, pobiera n-tą wartość z łańcucha (dostosowując dla 0 indeksowania). Konwertuje na numeryczne i sprawdza, czy jest to 0.
źródło
GolfScript, 12 bajtów
Wyjaśnienie:
Wypróbuj online lub sprawdź wszystkie przypadki testowe!
źródło
C, 154 bajtów
funkcją obliczającą wartość jest f (n, 0,0,0), gdzie n jest indeksem wejściowym. może obliczyć na podstawie zmiany indeksu „return! c” w „return c” wartość tablicy w tym indeksie ... nie rozumiem jak, ale wydaje się, że działa dobrze ....
źródło
JavaScript (ES5):
6160 bajtówNie golfowany:
Stary:
Niegolfowany stary:
źródło
!s[n]
zamiasts[n]==0
?function(n){s="";while(s.length<n)s+=s.length;return !s[n]}
) zwraca a (31) = false.CoffeeScript, 56 bajtów
źródło
zsh, 31 bajtów
exit 0
jest prawdziwe w Zshźródło
C #, 71 bajtów
I początkowo myślałem, że jest krótki, ale potem musiałem dodać,
n+=11
aby zapobiec rzucaniu,System.IndexOutOfRangeException
gdy wprowadzane są liczby poniżej 11źródło
Pyke, 7 bajtów
Wypróbuj tutaj!
źródło