کد جمع کردن چند جمله ای ها — راهنمای کاربردی
در این مطلب، الگوریتم و کد جمع کردن چند جمله ای ها همراه با ارائه مثالی بیان شده است؛ همچنین، کد جمع کردن دو چند جملهای در زبانهای برنامهنویسی «سیپلاسپلاس» (++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)
- ساخت آرایه []sum با اندازهای برابر با بیشینه m و n
- کپی کردن []A در []sum
- آرایه []B را بخوان و برای هر عنصر [B[i، اقدامات زیر را انجام بده:
- [sum[i] = sum[i] + B[i
- []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 به ترتیب مرتبه چند جملهایهای داده شده هستند.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامهنویسی C++
- مجموعه آموزشهای ریاضیات
- یافتن دور همیلتونی با الگوریتم پس گرد — به زبان ساده
- الگوریتم بازی مار و پله همراه با کد — به زبان ساده
- حل مساله n وزیر با الگوریتم پسگرد (Backtracking) — به زبان ساده
^^
خانم حصارکی من ۲تا برنامه دارم میشه برام حلش کنید چطوری میتونم با شما تماس برقرار کنم
سلام خسته نباشید …اگر تعداد جملات را خود کاربر قرار بود مشخص کنه برنامه چطور نوشته میشد؟