+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
Wypróbuj online!
⍳ 12
liczby całkowite od jednego do dwunastu
⎕ ,¨
wprowadź dane numeryczne i wstaw do każdej z dwunastu liczb
{
… }¨
Na każdej z par zastosuj funkcję…
cal⍵
dostać kalendarz na ten rok-miesiąc
2 ↓
upuść dwa wiersze (podpis i dni)
⍉
transponuj (abyśmy mogli adresować kolumny zamiast wierszy)
¯5 ↑
weź ostatnie pięć (dwie cyfry dla każdego piątku i soboty plus jedna spacja)
3 ↑
weź dwie pierwsze (dwie cyfry w piątek plus spację)
⍉
transponuj (więc otrzymujemy kolejność czytania)
,
strzępy
⍎
wykonać jako wyrażenie APL (podaje listę dat piątków)
13 ∊
czy trzynaście jest członkiem tej listy?
+/
zsumuj 12 booleanów
Korzystając z algorytmu @ Wrzlprmft , możemy to zrobić bez bibliotek dla 53 bajtów:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1
odejmij zero i jeden
400 100 4 ∘.|
tabela reszty podziału dla dwóch lat (w poprzek) podzielona przez te liczby (w dół)
0 ≠.=
wewnętrzny „produkt” z 0, ale używając ≠ i = zamiast +. ×
⊢ ,
wstaw niezmodyfikowany rok argumentu
2 3 ¯1 +.×
produkt wewnętrzny z tymi numerami
14 |
pozostała część podziału po podzieleniu przez czternaście
'21232211321211' ⌷⍨
indeks do tego ciągu