เบอร์เดลานอย − หมายเลข Delannoy D อธิบายจำนวนเส้นทางจากมุมตะวันตกเฉียงใต้ (0,0) ถึงมุมตะวันออกเฉียงเหนือ (a,b) ในตารางสี่เหลี่ยมโดยใช้ขั้นตอนที่อนุญาตเท่านั้น ตะวันออก ( →) ตะวันออกเฉียงเหนือ ( ↗ ) และทิศเหนือ ( ↑ )
ดังนั้น เราสามารถพูดได้ว่าความสัมพันธ์ที่เกิดซ้ำคือ
D(a,b) =D(a-1,b) + D(a, b-1) + D(a-1, b-1) โดยที่ D(0,0)=1.ก่อน>ตัวอย่างเช่น หมายเลข Delannoy D(3,3) เท่ากับ 63
อัลกอริทึมในการค้นหาหมายเลข Delannoy
-
ใช้พิกัดสองอัน (a,b) เป็นอินพุต
-
ฟังก์ชันจำนวนเต็ม createDelannoy(int a, int b) ซึ่งรับพิกัด 'a' และ 'b' เป็นอินพุต
-
ในกรณีฐาน เราจะตรวจสอบว่าพิกัด 'a' และ 'b' เป็นศูนย์หรือไม่ ให้คืนค่า 1
-
ในอีกกรณีหนึ่ง ให้สร้างหมายเลข Delannoy และส่งคืนผลลัพธ์โดยใช้ความสัมพันธ์ที่เกิดซ้ำเพื่อสร้างหมายเลข Delannoy D(a-1,b) + D(a,b-1) + D(a-1,b1)พี>
ตัวอย่าง
#includeใช้เนมสเปซ std;int สร้างDelannoy(int a, int b){ int d=1; if((a==0) || (b==0)){ d=1; } อื่น ๆ { d =generateDelannoy(a-1,b) + generateDelannoy(a,b-1) + generateDelannoy(a1,b-1); } ส่งคืน d;}int main(){ int a=3; int b=3; ผลลัพธ์ int=0; ผลลัพธ์ =สร้างDelannoy(a,b); cout<<ผลลัพธ์< ผลลัพธ์
การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น
63สำหรับคะแนนที่กำหนด (a,b) =(3,3) การใช้ความสัมพันธ์การเกิดซ้ำ D(a-1,b) + D(a,b-1) + D(a-1,b-1) จะสร้าง Delannoy หมายเลข '63' เป็นเอาต์พุต