0?0=1
a?b=sum[a?i+i?a|i<-[0..b-1]]
f n=n?n
ลองออนไลน์!
การประยุกต์ใช้โดยตรงอย่างเป็นธรรมที่เรียกซ้ำกว่า 2 ตัวแปร
นี่คือวิธีที่เราจะได้รับโซลูชันนี้ เริ่มต้นด้วยรหัสที่ใช้สูตรแบบเรียกซ้ำโดยตรง:
54 ไบต์
0%0=1
a%b=sum$map(a%)[0..b-1]++map(b%)[0..a-1]
f n=n%n
ลองออนไลน์!
การใช้การตีความโกงย้าย flawr ของ , a%b
คือจำนวนของเส้นทางที่ได้รับจากเกมหมากรุก(a,b)
การ(0,0)
ใช้เพียงย้ายการลดลงของการประสานงาน การย้ายครั้งแรกจะลดa
หรือลดลงb
ทำให้อีกอันหนึ่งเหมือนเดิมดังนั้นสูตรเวียนเกิดซ้ำ
49 ไบต์
a?b=sum$map(a%)[0..b-1]
0%0=1
a%b=a?b+b?a
f n=n%n
ลองออนไลน์!
เราสามารถหลีกเลี่ยงการทำซ้ำmap(a%)[0..b-1]++map(b%)[0..a-1]
โดยสังเกตว่าทั้งสองครึ่งเหมือนกันa
และb
สลับกัน สายช่วยa?b
นับเส้นทางที่ย้ายครั้งแรกลดลงa
และเพื่อให้นับผู้ที่ย้ายครั้งแรกลดลงb?a
เหล่านี้อยู่ในที่แตกต่างกันโดยทั่วไปและพวกเขาเพิ่มb
a%b
ในผลรวมยังสามารถเขียนเป็นความเข้าใจรายการa?b
a?b=sum[a%i|i<-[0..b-1]]
42 ไบต์
0?0=1
a?b=sum[a?i+i?a|i<-[0..b-1]]
f n=n?n
ลองออนไลน์!
สุดท้ายเราก็กำจัดทิ้งไป%
และเขียนการสอบถามซ้ำในแง่ของ?
ด้วยการแทนที่a%i
ด้วยa?i+i?a
การโทรซ้ำ
กรณีฐานใหม่ที่ทำให้เกิดนี้?
จะให้ผลอีกครั้งว่าของ?
ในรุ่น 49 ไบต์ตั้งแต่ที่มีเราจะมี0?0=1
0%0=0?0+0?0=2
สิ่งนี้ช่วยให้ใช้ define f n=n?n
โดยไม่ต้องแบ่งครึ่งที่เราต้องทำ