Inspirowany starą instrukcją ...
Wyzwanie
I zdefiniować p sufiks wektora B jako logiczną długość listy A z b końcowe wartości truthy.
Napisać program lub funkcji, która, z uwagi i b za pomocą dowolnych środków, zwraca p sufiks wektora B, w dowolny sposób.
Teraz może się to wydawać trywialne, ale tutaj jest haczyk: Twój wynik to liczba bajtów plus najwcześniejszy rok, w którym rozwiązanie zadziałałoby.
Zasady
Obowiązują wszystkie standardowe reguły, z wyjątkiem tego, że można także używać języków i wersji językowych wydanych po tym wyzwaniu.
Dane wyjściowe przy użyciu dowolnej reprezentacji wartości boolowskich używanych przez Twój język, np. 1
/ 0
, True
/ False
, TRUE
/ FALSE
, "True"
/ "False"
Itd.
Wyjście za pomocą cokolwiek reprezentacji listach, które swój używa języka, na przykład 0 0 1
, [False,False,True]
, (FALSE;FALSE;TRUE)
, {"False","False","True"}
, etc.
Można założyć, że ≥ b jest zawsze prawdziwe i że są one odpowiedniego typu danych.
Przypadki testowe
Biorąc pod uwagę a = 7 ib = 3, zwróć0 0 0 0 1 1 1
Biorąc pod uwagę a = 4 ib = 4, zwróć[True,True,True,True]
Biorąc pod uwagę a = 2 ib = 0, zwróć(FALSE;FALSE)
Biorąc pod uwagę a = 0 ib = 0, zwróć{}
Przykładowe rozwiązanie i ocena
Mogę chcieć przesłać rozwiązanie {⌽⍺↑⍵⍴1}
za pomocą Dyalog APL. Byłoby to bytecount 8. Jest to funkcja dynamiczna, która działa od wersji 8.1 programu Dyalog APL, wydanego w 1998 roku, więc mój całkowity wynik to 2006. Moja przesłana odpowiedź powinna wyglądać mniej więcej tak:
# Dyalog APL 8.1, 1998 + 8 = 2006
{⌽⍺↑⍵⍴1}
Optional explanation...
Recommended: Link to documentation showing when the features you used were released.
Najniższy wynik wygrywa!
źródło
Odpowiedzi:
APL \ 360, 1968 + 3 bajty = 1971
Wbudowane z samouczka @NBZ połączone z. Nie wiem dlaczego @NBZ powiedział, że wynik w 1970 roku, ponieważ APL \ 360 nie został wdrożony do 1968 roku, a wcześniej APLS jak APL \ 1130 nie posiada funkcji przyrostek wektorowych (patrz strona 208 tutaj ).
źródło
Później 1970 + 38 = 2008
użycie:
7 3 s
drukuje „0 0 0 0 -1 -1 -1”źródło
sv
a nie innes
, czy może jeden bajt?APL, 1968 + 5 = 1973
Do 5 znaków:
Starsza wersja:
Cóż, właściwie już udzieliłeś odpowiedzi, właśnie usunąłem definicję funkcji dynamicznej i sprawdziłem, czy ta zadziałała w 1968 roku. W celach informacyjnych znajduje się instrukcja:
http://www.softwarepreservation.org/projects/apl/Books/APL360ReferenceManual
źródło
SAS, 1966 + 45 = 2011
Czas zabłysnąć SAS!
SAS nie został opublikowany po raz pierwszy przed 1972 r., Ale w tym kroku danych wykorzystano tylko bardzo podstawowe funkcje, które - jestem przekonany - byłyby dostępne nawet w najwcześniejszych wersjach przedpremierowych od 1966 r., Więc uważam, że to zadziałałoby. Wejście idzie po
a=
ib=
, a wyjście jest drukowany w dzienniku.Byłbym zaskoczony, gdyby ktoś nadal miał IBM System / 360 z odpowiednią wersją SAS, aby to zweryfikować!
źródło
Mysz-1979 , 1979 + 19 = 1998
Tłumaczenie: Forth .
Specyfikacja jest dla mnie naprawdę tajemnicza, ale myślę, że to dobrze.
źródło
&Tuck
był dostępny do wersji 2002. A pętle wydają się być nieskończone.TI-Basic, 1990 + 21 = 2011
Pierwszym kalkulatorem TI, na którym działa ten program, jest TI-81, wprowadzony w 1990 roku.
Edytować: zauważyłem, że muszę obsługiwać pustą listę ... zwiększony kod o 4 bajty
Przypadki testowe
źródło
Ans
pomocą akceptowalnej metody wydruku, chyba że zostanie wydrukowana.Prompt
iseq(
są jednobajtowymi tokenami, a pozostałe znaki są jednobajtowe.Ans
to domyślny sposób na zwrócenie wartości w serii TI-83 Basic. Dodatkowo po uruchomieniu programu ostatni wiersz jest drukowany automatycznie. Więc masz to, co najlepsze z obu światów.Mathematica 1.0, 1988 + 22 bajtów = 2010
Nie jestem pewien, czy to działa, właśnie przejrzałem dokumentację 10.3 i szukałem rzeczy, które powiedział Wprowadzony w 1988 roku (1.0)
źródło
/.
oraz->
,Array
68k TI-Basic, 1995 + 25 = 2020
Pierwszym kalkulatorem TI, na którym działa ten program, jest TI-92, wprowadzony w 1995 roku.
W przeciwieństwie do serii TI-83, 68k TI-Basic obsługuje pustą listę.
źródło
Prompt
jest niepoprawna w funkcji i program nie może zwrócić wartości. Należy to wprowadzić na ekranie głównym. Z drugiej stronydefine f(a,b)=seq(x>a-b,x,1,a)
definiuje poprawną funkcję, której można nadać argumenty aib jako argumenty. (Zweryfikowane na moim TI-92 od 1995-09-13)define
i wywołaniuf(2,1)
lub podobnym w celu tokenizacji rozmiar zgłoszony przez system operacyjny wynosi 25 bajtów.Python 1.0, 1994 + 26 = 2020
Zaoszczędzono 2 bajty dzięki DSM.
Lambda została wprowadzona wraz z pierwszą dużą wersją, 1.0
źródło
MATL , 2015 + 1 + 4 = 2020
Działa to od wersji 6.0.0 języka (wykorzystuje niejawne dane wejściowe, które zostały wprowadzone w tej wersji) z dnia 31 grudnia 2015 r.
Dodałem
1
do wyniku zgodnie z komentarzem @drolex na temat możliwie różnych lokalizacji.Wypróbuj online!
Wyjaśnienie
źródło
J, 1990 + 8 = 1998
Argh. Badałem tę odpowiedź i ktoś dotarł do APL, zanim mogłem mieć nadzieję na zrozumienie języka. Zamiast tego oto moje rozwiązanie J.
źródło
Prolog, 1972 + 57 = 2029
Zastosowanie:
a(7,3,L).
połączy sięL
z[0,0,0,0,1,1,1]
.Nie jestem do końca pewien, kiedy
is
został zaimplementowany w tym języku, i wątpię, czy naprawdę możesz znaleźć dokładną datę. Jest to dość podstawowe wbudowane, więc zakładam, że już istniało, kiedy język pojawił się w 1972 roku .Ale to nie ma znaczenia, ale daleko mi do wygrania z tą odpowiedzią.
źródło
SMP , 1983 + 28 bajtów = 2011
Myślę, że mam rację ...
S
: 2.10, strona 48Ar
: 7.1, strona 102Map
: 7.2, strona 106$1
: 7.1, strona 104A jeśli znasz Mathematica, nie,
Ar
to nie działa w ten sposób . Bardziej jakRange
+Select
.źródło
(#>x&/.x->#)/@Range[#+#2]&
in Mathematica(#>x&/.x->#-#2)/@Range[#]&
Vim, 1991 + 21 = 2012
Dane wejściowe wyglądają tak:
Wyjście wygląda następująco:
Wyjaśnienie:
źródło
B , 1971 + 54 = 2025
Patrz „ Odniesienie użytkownika do B ”, aby uzyskać podręcznik dla tego bez typowego prekursora C.
źródło
Pyth, 2015 +
94 =20242019Dzięki @FryAmTheEggman za pomoc!
Wypróbuj tutaj!
Wyjaśnienie
źródło
> <> , 2009 + 14 + 3 dla -v = 2026
b
ia
powinny być dostarczone bezpośrednio na stosie-v
, w odwrotnej kolejności.Dane wyjściowe nie są oddzielone spacją, jak w przykładach, ale nie wydaje się to sprzeczne z żadną określoną regułą. Używa 0 i 1 do reprezentowania fałszu i prawdy, zgodnie z językiem.
Nie działa z bieżącą wersją, ponieważ
?
teraz pobiera wartość testową ze stosu.Nie jestem pewien, czy każda funkcja została wdrożona od pierwszego dnia,
-v
na przykład mogła być dostarczona później jako towar. Postaram się upewnić, że moja odpowiedź jest poprawna w ten weekend.źródło
05AB1E , 2016 + 9 = 2025
Można to zdecydowanie pograć w golfa dalej, ale oto początek: str. Kod:
Wypróbuj online! Dane wejściowe podano jako b, a .
Również 9 bajtów:
0×1I×0ñRS
.źródło
°
istniał jeszcze w 2016 roku?)PowerShell v1, 2006 + 28 = 2034
Używa operatora przecinka do konstruowania tablic, które były w PowerShell od samego początku.
źródło
Mathcad, 1998 + 42 = 2040
„bajty” są interpretowane jako liczba różnych znaków klawiatury (np. operator „for” (w tym jedna linia programowania) to pojedynczy znak ctl-shft- # lub kliknięcie na pasku narzędzi Programowanie).
Powyższa liczba bajtów zakłada, że definicje aib nie liczą się do sumy; dodaj 4 bajty dla definicji, jeśli to założenie jest nieprawidłowe.
Pokazana poniżej wersja funkcji dodaje 5 bajtów dla definicji i kolejne 3 bajty dla każdego użycia (zakładając, że wartości a i b są wpisywane bezpośrednio).
Ponieważ moje rozwiązanie Mathcad powinno wyraźnie rozgrywać czerwone koszulki, a nie konkurencyjne, dodałem tabelę rozwiązań. Zauważ, że ponieważ Mathcad nie ma pustej tablicy, użyłem zamiast tego pustego łańcucha („”); Użyłem 0, aby wskazać, gdzie nie obliczałem par b> a.
źródło
PHP, 1995 + 56 bajtów = 2051
Widok rozstrzelonyźródło
JavaScript ES6, 2015 + 46 = 2061
Zwraca tablicę 0 i 1
JavaScript ES6, 2015 + 50 = 2065
Zwraca ciąg znaków
0
i1
znakiJavascript, 1995 + 61 = 2056
Returns a string of
0
and1
charsźródło
k (kona), 1993 + 15 = 2008
Creates list of b True values, and concatenates it to a list of (a-b) False values.
źródło
R, 20 bytes + 1993 = 2013
Try it online!
Possibly this might work in S, which would drop the score to 2008, but I haven't been able to verify it.
źródło
SmileBASIC 3, 2014 + 25 = 2039
The first publicly available version of SmileBASIC 3 launched in Japan with the SmileBASIC app for Nintendo 3DS in November 2014.
Prints a string where 0 is false and 1 is true (as they are in the language itself.)
źródło