มีหลายประเภทของอนุกรมในคณิตศาสตร์ที่แก้ได้ง่ายใน C โปรแกรมนี้หาผลรวมของอนุกรมต่อไปนี้ใน C
Tn = n2 - (n-1)2
หาผลรวมทุกพจน์ของอนุกรมเป็น Sn mod (109 + 7) และ
Sn = T1 + T2 + T3 + T4 + ...... + Tn
Input: 229137999 Output: 218194447
คำอธิบาย
Tn สามารถเขียนในรูป 2n-1 ได้
เรารู้ว่า
=> Tn = n2 - (n-1)2 => Tn = n2 - (1 + n2 - 2n) => Tn = n2 - 1 - n2 + 2n => Tn = 2n - 1. หา ∑Tn. ∑Tn = ∑(2n – 1) ลดรูปสมการ: =>∑(2n – 1) = 2*∑n – ∑1 =>∑(2n – 1) = 2*∑n – n. ที่นี่ ∑n คือผลรวม n จำนวนธรรมชาติแรก รู้ว่าผลรวม n จำนวนธรรมชาติ ∑n = n(n+1)/2 สมการกลายเป็น ∑Tn = (2*(n)*(n+1)/2)-n = n2 ค่า n2 อาจใหญ่ แทนที่จะใช้ n2 แล้ว mod ผลลัพธ์ ใช้คุณสมบัติการคูณแบบโมดูลาร์: (a*b)%k = ((a%k)*(b%k))%k
ตัวอย่างโค้ด C++
#includeusing namespace std; #define mod 1000000007 int main() { long long n = 229137999; cout << ((n%mod)*(n%mod))%mod; return 0; }