The Seidel Triangle เป็นโครงสร้างทางคณิตศาสตร์ที่คล้ายกับสามเหลี่ยมของ Pascal และเป็นที่รู้จักกันดีว่ามีส่วนเกี่ยวข้องกับตัวเลขของเบอร์นูลี
สองสามแถวแรกคือ:
1
1 1
2 2 1
2 4 5 5
16 16 14 10 5
16 32 46 56 61 61
แต่ละแถวถูกสร้างดังต่อไปนี้:
หากหมายเลขแถวเป็นเลขคู่ (ทำดัชนี 1 รายการ):
นำไอเท็มแรกของแถวก่อนลงมา
ทุกรายการถัดไปคือผลรวมของรายการก่อนหน้าและรายการด้านบน
ทำซ้ำรายการสุดท้าย
ถ้าหมายเลขแถวเป็นเลขคี่:
ดึงรายการสุดท้ายของแถวก่อนหน้า
ย้อนกลับไปแต่ละรายการคือผลรวมของรายการก่อนหน้าและรายการด้านบน
ทำซ้ำสิ่งที่ตอนนี้เป็นรายการแรก
โดยพื้นฐานแล้วเราสร้างสามเหลี่ยมในรูปแบบซิกแซก:
1
v
1 > 1
v
2 < 2 < 1
v
2 > 4 > 5 > 5
สำหรับข้อมูลเพิ่มเติมดูที่หน้า Wikipediaเกี่ยวกับหมายเลข Bernoulli
ความท้าทาย:
ป.ร. ให้n
ไว้ไม่ว่าจะเป็นอาร์กิวเมนต์ฟังก์ชั่นหรือจาก STDIN พิมพ์หรือกลับn
แถวที่สองของสามเหลี่ยม Seidel หรือn
แถวแรก คุณสามารถใช้การจัดทำดัชนี 0 หรือ 1
คุณไม่จำเป็นต้องจัดการอินพุตที่เป็นค่าลบหรือไม่ใช่จำนวนเต็ม (หรือ 0 หากดัชนี 1) คุณไม่ต้องจัดการกับผลลัพธ์ที่มีขนาดใหญ่กว่า2147483647 = 2^31 - 1
เนื่องจากนี่เป็นโค้ดกอล์ฟให้ทำในจำนวนไบต์น้อยที่สุด
ตัวอย่าง:
ในตัวอย่างเหล่านี้ค่าส่งคืนคือn
แถวที่ 0 ซึ่งจัดทำดัชนีไว้
Input -> Output
0 1
1 1 1
2 2 2 1
6 272 272 256 224 178 122 61
13 22368256 44736512 66750976 88057856 108311296 127181312 144361456 159575936 172585936 183194912 191252686 196658216 199360981 199360981