ชุดเลข Motzkin เริ่มต้นด้วย 1, 1, 4, 9 เป็นต้น เราสามารถหาพจน์ที่ n ทั่วไปด้วยลำดับได้ ลำดับเลข Motzkin มีดังนี้
a0 =1
a1 =1
a2 =4
a3 =9
an =((2 * n + 1)/ n + 2) * M(n-1) +((3 * n - 3)/ n + 2) * M(n - 2)
อัลกอริทึม
-
เริ่มต้นหมายเลข n.
-
วนซ้ำจนถึง n.
-
อัพเดทเลขสองตัวก่อนหน้า
-
-
ส่งคืนหมายเลขสุดท้าย
ตัวอย่าง
การนำไปใช้
ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++
#include <bits/stdc++.h>
using namespace std;
int getNthTerm(int n) {
if(n == 0 || n == 1) {
return 1;
}
int a = 1, b = 1;
for(int i = 2; i <= n; ++i) {
int c = ((2 * i + 1) * b + (3 * i - 3) * a) / (i + 2);
a = b;
b = c;
}
return b;
}
int main() {
int n = 5;
cout << getNthTerm(n) << endl;
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
21