کد جمع کردن چند جمله ای ها — راهنمای کاربردی

۱۲۷۷ بازدید
آخرین به‌روزرسانی: ۱۰ تیر ۱۴۰۲
زمان مطالعه: ۶ دقیقه
کد جمع کردن چند جمله ای ها — راهنمای کاربردی

در این مطلب، الگوریتم و کد جمع کردن چند جمله ای ها همراه با ارائه مثالی بیان شده است؛ همچنین، کد جمع کردن دو چند جمله‌ای در زبان‌های برنامه‌نویسی «سی‌پلاس‌پلاس» (++C)، «جاوا» (Java)، «پایتون ۳» (Python3)، «سی‌شارپ» (#C) , «پی‌اچ‌پی» (PHP) ارائه شده است.

جمع کردن چند جمله ای ها

دو چند جمله‌ای به صورت دو آرایه زیر تعریف شده‌اند. هدف نوشتن تابعی است که بتواند دو چندجمله‌ای داده شده را با یکدیگر جمع کند.

ورودی‌ها:

A[] = {5, 0, 10, 6}

B[] = {1, 2, 4}

خروجی:

sum[] = {6, 2, 14, 6}

اولین آرایه ورودی، نشاگر «5 + 0x^1 + 10x^2 + 6x^3» و دومین آرایه، نشان‌گر «1 + 2x^1 + 4x^2» است. آرایه خروجی نیز نشان‌گر چندجمله‌ای «6 + 2x^1 + 14x^2 + 6x^3» است.

جمع کردن دو چند جمله‌ای، از ضرب کردن آن‌ها ساده‌تر است. مقداردهی اولیه با یکی از دو چندجمله‌ای انجام می‌شود، سپس، چند جمله‌ای دیگر خوانده و همه عبارات آن به نتیجه، اضافه می‌شوند. الگوریتم مورد استفاده برای جمع کردن دو چند جمله‌ای، به صورت زیر است.

افزودن ([A[0..m-1], B[0..n01)

  1. ساخت آرایه []sum با اندازه‌ای برابر با بیشینه m و n
  2. کپی کردن []A در []sum
  3. آرایه []B را بخوان و برای هر عنصر [B[i، اقدامات زیر را انجام بده:
    • [sum[i] = sum[i] + B[i
  4. []sum را بازگردان.

در ادامه، پیاده‌سازی الگوریتم جمع کردن دو چند جمله‌ای، در زبان‌های برنامه‌نویسی گوناگون انجام شده است.

کد جمع کردن چند جمله ای ها در ++C

1// Simple C++ program to add two polynomials 
2#include <iostream> 
3using namespace std; 
4  
5// A utility function to return maximum of two integers 
6int max(int m, int n) {  return (m > n)? m: n; } 
7  
8// A[] represents coefficients of first polynomial 
9// B[] represents coefficients of second polynomial 
10// m and n are sizes of A[] and B[] respectively 
11int *add(int A[], int B[], int m, int n) 
12{ 
13   int size = max(m, n); 
14   int *sum = new int[size]; 
15  
16   // Initialize the porduct polynomial 
17   for (int i = 0; i<m; i++) 
18     sum[i] = A[i]; 
19  
20   // Take ever term of first polynomial 
21   for (int i=0; i<n; i++) 
22       sum[i] += B[i]; 
23  
24   return sum; 
25} 
26  
27// A utility function to print a polynomial 
28void printPoly(int poly[], int n) 
29{ 
30    for (int i=0; i<n; i++) 
31    { 
32       cout << poly[i]; 
33       if (i != 0) 
34        cout << "x^" << i ; 
35       if (i != n-1) 
36       cout << " + "; 
37    } 
38} 
39  
40// Driver program to test above functions 
41int main() 
42{ 
43    // The following array represents polynomial 5 + 10x^2 + 6x^3 
44    int A[] = {5, 0, 10, 6}; 
45  
46    // The following array represents polynomial 1 + 2x + 4x^2 
47    int B[] = {1, 2, 4}; 
48    int m = sizeof(A)/sizeof(A[0]); 
49    int n = sizeof(B)/sizeof(B[0]); 
50  
51    cout << "First polynomial is \n"; 
52    printPoly(A, m); 
53    cout << "\nSecond polynomial is \n"; 
54    printPoly(B, n); 
55  
56    int *sum = add(A, B, m, n); 
57    int size = max(m, n); 
58  
59    cout << "\nsum polynomial is \n"; 
60    printPoly(sum, size); 
61  
62    return 0; 
63}

کد جمع کردن چند جمله ای ها در جاوا

1// Java program to add two polynomials 
2  
3class GFG { 
4  
5// A utility function to return maximum of two integers  
6    static int max(int m, int n) { 
7        return (m > n) ? m : n; 
8    } 
9  
10// A[] represents coefficients of first polynomial  
11// B[] represents coefficients of second polynomial  
12// m and n are sizes of A[] and B[] respectively  
13    static int[] add(int A[], int B[], int m, int n) { 
14        int size = max(m, n); 
15        int sum[] = new int[size]; 
16  
17// Initialize the porduct polynomial  
18        for (int i = 0; i < m; i++) { 
19            sum[i] = A[i]; 
20        } 
21  
22// Take ever term of first polynomial  
23        for (int i = 0; i < n; i++) { 
24            sum[i] += B[i]; 
25        } 
26  
27        return sum; 
28    } 
29  
30// A utility function to print a polynomial  
31    static void printPoly(int poly[], int n) { 
32        for (int i = 0; i < n; i++) { 
33            System.out.print(poly[i]); 
34            if (i != 0) { 
35                System.out.print("x^" + i); 
36            } 
37            if (i != n - 1) { 
38                System.out.print(" + "); 
39            } 
40        } 
41    } 
42  
43// Driver program to test above functions  
44    public static void main(String[] args) { 
45        // The following array represents polynomial 5 + 10x^2 + 6x^3  
46        int A[] = {5, 0, 10, 6}; 
47  
48        // The following array represents polynomial 1 + 2x + 4x^2  
49        int B[] = {1, 2, 4}; 
50        int m = A.length; 
51        int n = B.length; 
52        System.out.println("First polynomial is"); 
53        printPoly(A, m); 
54        System.out.println("\nSecond polynomial is"); 
55        printPoly(B, n); 
56        int sum[] = add(A, B, m, n); 
57        int size = max(m, n); 
58        System.out.println("\nsum polynomial is"); 
59        printPoly(sum, size); 
60  
61    } 
62}

کد جمع کردن چند جمله ای ها در پایتون ۳

1# Simple Python 3 program to add two 
2# polynomials 
3  
4# A utility function to return maximum  
5# of two integers 
6  
7# A[] represents coefficients of first polynomial 
8# B[] represents coefficients of second polynomial 
9# m and n are sizes of A[] and B[] respectively 
10def add(A, B, m, n): 
11  
12    size = max(m, n); 
13    sum = [0 for i in range(size)] 
14  
15    # Initialize the porduct polynomial 
16      
17    for i in range(0, m, 1): 
18        sum[i] = A[i] 
19  
20    # Take ever term of first polynomial 
21    for i in range(n): 
22        sum[i] += B[i] 
23  
24    return sum
25  
26# A utility function to print a polynomial 
27def printPoly(poly, n): 
28    for i in range(n): 
29        print(poly[i], end = "") 
30        if (i != 0): 
31            print("x^", i, end = "") 
32        if (i != n - 1): 
33            print(" + ", end = "") 
34  
35# Driver Code 
36if __name__ == '__main__': 
37      
38    # The following array represents 
39    # polynomial 5 + 10x^2 + 6x^3 
40    A = [5, 0, 10, 6] 
41  
42    # The following array represents 
43    # polynomial 1 + 2x + 4x^2 
44    B = [1, 2, 4] 
45    m = len(A) 
46    n = len(B) 
47  
48    print("First polynomial is") 
49    printPoly(A, m) 
50    print("\n", end = "") 
51    print("Second polynomial is") 
52    printPoly(B, n) 
53    print("\n", end = "") 
54    sum = add(A, B, m, n) 
55    size = max(m, n) 
56  
57    print("sum polynomial is") 
58    printPoly(sum, size) 
59      
60# This code is contributed by 
61# Sahil_Shelangia

کد جمع کردن چند جمله ای ها در #C

1// C# program to add two polynomials 
2using System; 
3class GFG { 
4  
5    // A utility function to return maximum of two integers  
6    static int max(int m, int n)  
7    { 
8        return (m > n) ? m : n; 
9    } 
10  
11    // A[] represents coefficients of first polynomial  
12    // B[] represents coefficients of second polynomial  
13    // m and n are sizes of A[] and B[] respectively  
14    static int[] add(int[] A, int[] B, int m, int n) 
15    { 
16        int size = max(m, n); 
17        int[] sum = new int[size]; 
18  
19        // Initialize the porduct polynomial  
20        for (int i = 0; i < m; i++) 
21        { 
22            sum[i] = A[i]; 
23        } 
24  
25        // Take ever term of first polynomial  
26        for (int i = 0; i < n; i++) 
27        { 
28            sum[i] += B[i]; 
29        } 
30  
31        return sum; 
32    } 
33  
34    // A utility function to print a polynomial  
35    static void printPoly(int[] poly, int n)   
36    { 
37        for (int i = 0; i < n; i++) 
38        { 
39            Console.Write(poly[i]); 
40            if (i != 0)  
41            { 
42                Console.Write("x^" + i); 
43            } 
44            if (i != n - 1)  
45            { 
46                Console.Write(" + "); 
47            } 
48        } 
49    } 
50  
51    // Driver code  
52    public static void Main()  
53    { 
54        // The following array represents  
55        // polynomial 5 + 10x^2 + 6x^3  
56        int[] A = {5, 0, 10, 6}; 
57  
58        // The following array represents  
59        // polynomial 1 + 2x + 4x^2  
60        int[] B = {1, 2, 4}; 
61        int m = A.Length; 
62        int n = B.Length; 
63        Console.WriteLine("First polynomial is"); 
64        printPoly(A, m); 
65        Console.WriteLine("\nSecond polynomial is"); 
66        printPoly(B, n); 
67        int[] sum = add(A, B, m, n); 
68        int size = max(m, n); 
69        Console.WriteLine("\nsum polynomial is"); 
70        printPoly(sum, size); 
71  
72    } 
73} 
74  
75//This Code is Contributed  
76// by Mukul Singh

کد جمع کردن چند جمله ای ها در PHP

1<?php 
2// Simple PHP program to add two polynomials 
3  
4// A[] represents coefficients of first polynomial 
5// B[] represents coefficients of second polynomial 
6// m and n are sizes of A[] and B[] respectively 
7function add($A, $B, $m, $n) 
8{ 
9    $size = max($m, $n); 
10    $sum = array_fill(0, $size, 0); 
11      
12    // Initialize the porduct polynomial 
13    for ($i = 0; $i < $m; $i++) 
14        $sum[$i] = $A[$i]; 
15      
16    // Take ever term of first polynomial 
17    for ($i = 0; $i < $n; $i++) 
18        $sum[$i] += $B[$i]; 
19      
20    return $sum; 
21} 
22  
23// A utility function to print a polynomial 
24function printPoly($poly, $n) 
25{ 
26    for ($i = 0; $i < $n; $i++) 
27    { 
28        echo $poly[$i]; 
29        if ($i != 0) 
30            echo "x^" . $i; 
31        if ($i != $n - 1) 
32        echo " + "; 
33    } 
34} 
35  
36// Driver Code 
37  
38// The following array represents 
39// polynomial 5 + 10x^2 + 6x^3 
40$A = array(5, 0, 10, 6); 
41  
42// The following array represents  
43// polynomial 1 + 2x + 4x^2 
44$B = array(1, 2, 4); 
45$m = count($A); 
46$n = count($B); 
47  
48echo "First polynomial is \n"; 
49printPoly($A, $m); 
50echo "\nSecond polynomial is \n"; 
51printPoly($B, $n); 
52  
53$sum = add($A, $B, $m, $n); 
54$size = max($m, $n); 
55  
56echo "\nsum polynomial is \n"; 
57printPoly($sum, $size); 
58  
59// This code is contributed by chandan_jnu 
60?>

خروجی کد

First polynomial is
5 + 0x^1 + 10x^2 + 6x^3
Second polynomial is
1 + 2x^1 + 4x^2
Sum polynomial is
6 + 2x^1 + 14x^2 + 6x^3

پیچیدگی زمانی الگوریتم و برنامه بالا، برابر با (O(m+n است که در آن، m و n به ترتیب مرتبه چند جمله‌ای‌های داده شده هستند.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
۲ دیدگاه برای «کد جمع کردن چند جمله ای ها — راهنمای کاربردی»

خانم حصارکی من ۲تا برنامه دارم میشه برام حلش کنید چطوری میتونم با شما تماس برقرار کنم

سلام خسته نباشید …اگر تعداد جملات را خود کاربر قرار بود مشخص کنه برنامه چطور نوشته میشد؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *