+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
ลองออนไลน์!
⍳ 12 จำนวนเต็มหนึ่งถึงสิบสอง
⎕ ,¨ รับข้อมูลเข้าเป็นตัวเลขและเสริมแต่ละหมายเลขสิบสอง
{... }¨ ในแต่ละคู่ใช้ฟังก์ชัน ...
cal⍵ รับปฏิทินสำหรับปีนั้น
2 ↓ ปล่อยสองแถว (คำบรรยายภาพและวัน)
⍉ ไขว้ (เพื่อให้เราสามารถที่อยู่คอลัมน์แทนแถว)
¯5 ↑ ใช้ตัวเลขห้าตัวสุดท้าย (สองหลักสำหรับแต่ละวันศุกร์และวันเสาร์และอีกหนึ่งช่องว่าง)
3 ↑ ใช้สองคนแรก (ตัวเลขสองหลักสำหรับวันศุกร์บวกด้วยช่องว่าง)
⍉ ไขว้ (ดังนั้นเราจึงได้อ่านคำสั่ง)
, คลี่คลาย
⍎ รันเป็นนิพจน์ APL (ให้รายการวันที่ของวันศุกร์)
13 ∊ สิบสามเป็นสมาชิกของรายการนั้นหรือไม่?
+/ รวม 12 Booleans
การใช้อัลกอริทึมของ @ Wrzlprmftเราสามารถทำได้โดยไม่ต้องมีไลบรารีสำหรับ 53 ไบต์:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1 ลบศูนย์และหนึ่ง
400 100 4 ∘.| ตารางเศษที่เหลือสำหรับสองปี (ข้าม) หารด้วยตัวเลขเหล่านี้ (ลง)
0 ≠.= "ผลิตภัณฑ์" ภายในด้วย 0 แต่ใช้≠และ = แทน +. ×
⊢ , เพิ่มปีอาร์กิวเมนต์ที่ไม่ได้แก้ไข
2 3 ¯1 +.× ผลิตภัณฑ์ภายในด้วยตัวเลขเหล่านี้
14 | ส่วนที่เหลือเมื่อหารด้วยสิบสี่
'21232211321211' ⌷⍨ จัดทำดัชนีลงในสายอักขระนี้