ในปัญหานี้ เราได้รับตัวเลข n ที่กำหนดเทอมที่ n ของอนุกรมนี้ งานของเราคือสร้างโปรแกรม เพื่อค้นหาผลรวมของชุดข้อมูล 1*2*3 + 2*3*4+3*4*5 + . . + n*(n+1)*(n+2) ใน C++ .
คำอธิบายปัญหา − ที่นี่ เราจะหาผลรวมจนถึง n เทอมของอนุกรมที่กำหนดด้วย 1*2*3 + 2*3*4+ 3*4*5 + . . + n*(n+1)*(n+2). สามารถถอดรหัสเป็นผลรวมของ n*(n+1)*(n+2) ได้
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
n = 5
ผลลัพธ์
420
คำอธิบาย
1*2*3 + 2*3*4 + 3*4*5 + 4*5*6 + 5*6*7 = 6 + 24 + 60 + 120 + 210 = 420
แนวทางการแก้ปัญหา
วิธีง่ายๆ ในการแก้ปัญหาคือการใช้ลูปจาก 1 ถึง n และค้นหาผลิตภัณฑ์ในการวนซ้ำแต่ละครั้งและเพิ่มลงใน sumVar หลังจากลูปสิ้นสุด ให้คืนค่า sumVar
อัลกอริทึม
- ขั้นตอนที่ 1 − วง i =1 ถึง n.
- ขั้นตอนที่ 1.1 − อัปเดต sumVar, sumVar +=i*(i+1)*(i+2)
- ขั้นตอนที่ 2 − พิมพ์ sumVar
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; for(int i = 1; i <= n; i++) sumVar = sumVar + ( (i)*(i+1)*(i+2) ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }
ผลลัพธ์
The sum of series till 7 is 1260
วิธีการนี้ไม่ได้ผลเนื่องจากต้องใช้เวลาในความซับซ้อนของลำดับของ N.
แนวทางอื่น กำลังใช้สูตรทางคณิตศาสตร์สำหรับผลรวมของอนุกรม ดังที่เราได้กล่าวไปแล้วในคำอธิบายปัญหา ชุดนี้สามารถกล่าวได้ว่าผลรวมของ (n)*(n+1)*(n+2)
ใช้ข้อมูลนี้สร้างสูตรทั่วไปสำหรับผลรวม
$Sum =\sum_{\square=1}^\square\blacksquare((\square)\ast(\square+1)\ast(\square+2))$
$=\sum\lbrace{(n^2+n)(n+2)}\rbrace$
$=\sum\lbrace{n^3 + n^2 + 2n^2 + 2n}\rbrace$
$=\sum\lbrace{n^3 +3n^2 + 2n}\rbrace$
$=\sum_{\square=1}^\square\blacksquare\square^3+3\sum_{\square=1}^\square\blacksquare\square^2+2\sum_{\square=1}^\ สี่เหลี่ยม\blacksquare\square^\blacksquare$
ตอนนี้ใช้สูตรทั่วไปสำหรับผลรวม
$\sum_{\square=1}^\square\blacksquare\square^3=\frac{(\square\ast(\square+1))^2}{2}$
$\sum_{\square=1}^\square\blacksquare\square^2=\frac{(\square\ast(\square+1)\ast(2\square+1))^\blacksquare}{6} $
$\sum_{\square=1}^\square\blacksquare\square^\blacksquare=\frac{(\square\ast(\square+1)^\blacksquare}{2}$
บวกทั้งหมดเหล่านี้เพื่อผลรวมของสูตร
$Sum=\frac{(\square\ast(\square+1))^2}{2^2}+\frac{3(\square\ast(\square+1)\ast(2\square+1) ))^\blacksquare}{6}+\frac{2(\square\ast(\square+1))^\blacksquare}{2}$
$=\frac{(\square\ast(\square+1))^\blacksquare}{2}[( ( (n * (n+1))/2 ) + (3(2n+1)/3) + 2]$
$=\frac{(\square\ast(\square+1))^\blacksquare}{4}[n^2+ n + 4n + 2 + 4]$
$=\frac{(\square\ast(\square+1))^\blacksquare}{4}[n^2+ 5n + 6]$
$=\frac{(\square\ast(\square+1))^\blacksquare}{4}[(n+2)(n+3)]$
=¼[ (n)*(n+1)*(n+2)*(n+3) ]
ของอนุกรมถึงเทอมที่ n คำนวณโดยใช้สูตร
¼[ (n)*(n+1)*(n+2)*(n+3) ]
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream> using namespace std; int calcSeriesSum(int n){ int sumVar = 0; sumVar = ( (n)*(n + 1)*(n + 2)*(n + 3)/4 ); return sumVar; } int main(){ int n = 7; cout<<"The sum of series till "<<n<<" is "<<calcSeriesSum(n); return 0; }
ผลลัพธ์
The sum of series till 7 is 1260