Рубрики

Программа для добавления двух полиномов

Если даны два полинома, представленные двумя массивами, напишите функцию, которая добавляет заданные два полинома.

Пример:

Input:  A[] = {5, 0, 10, 6} 
        B[] = {1, 2, 4} 
Output: sum[] = {6, 2, 14, 6}

The first input array represents "5 + 0x^1 + 10x^2 + 6x^3"
The second array represents "1 + 2x^1 + 4x^2" 
And Output is "6 + 2x^1 + 14x^2 + 6x^3"

Мы настоятельно рекомендуем свернуть ваш браузер и попробовать это в первую очередь.
Сложение проще, чем умножение полиномов . Мы инициализируем результат как один из двух многочленов, затем пересекаем другой многочлен и добавляем все члены к результату.

add(A[0..m-1], B[0..n01])
1) Create a sum array sum[] of size equal to maximum of 'm' and 'n'
2) Copy A[] to sum[].
3) Traverse array B[] and do following for every element B[i]
          sum[i] = sum[i] + B[i]
4) Return sum[].

Ниже приведена реализация вышеуказанного алгоритма.

C ++

// Простая программа на C ++ для добавления двух полиномов
#include <iostream>

using namespace std;

  
// Вспомогательная функция, возвращающая максимум двух целых

int max(int m, int n) {  return (m > n)? m: n; }

  
// A [] представляет коэффициенты первого полинома
// B [] представляет коэффициенты второго полинома
// m и n - размеры A [] и B [] соответственно

int *add(int A[], int B[], int m, int n)

{

   int size = max(m, n);

   int *sum = new int[size];

  

   // Инициализация полинома пордукта

   for (int i = 0; i<m; i++)

     sum[i] = A[i];

  

   // Взять когда-либо член первого полинома

   for (int i=0; i<n; i++)

       sum[i] += B[i];

  

   return sum;

}

  
// Полезная функция для печати полинома

void printPoly(int poly[], int n)

{

    for (int i=0; i<n; i++)

    {

       cout << poly[i];

       if (i != 0)

        cout << "x^" << i ;

       if (i != n-1)

       cout << " + ";

    }

}

  
// Программа драйвера для проверки вышеуказанных функций

int main()

{

    // Следующий массив представляет полином 5 + 10x ^ 2 + 6x ^ 3

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

  

    // Следующий массив представляет полином 1 + 2x + 4x ^ 2

    int B[] = {1, 2, 4};

    int m = sizeof(A)/sizeof(A[0]);

    int n = sizeof(B)/sizeof(B[0]);

  

    cout << "First polynomial is \n";

    printPoly(A, m);

    cout << "\nSecond polynomial is \n";

    printPoly(B, n);

  

    int *sum = add(A, B, m, n);

    int size = max(m, n);

  

    cout << "\nsum polynomial is \n";

    printPoly(sum, size);

  

    return 0;

}

Джава

// Java-программа для добавления двух полиномов

  

class GFG {

  
// Вспомогательная функция, возвращающая максимум двух целых

    static int max(int m, int n) {

        return (m > n) ? m : n;

    }

  
// A [] представляет коэффициенты первого полинома
// B [] представляет коэффициенты второго полинома
// m и n - размеры A [] и B [] соответственно

    static int[] add(int A[], int B[], int m, int n) {

        int size = max(m, n);

        int sum[] = new int[size];

  
// Инициализация полинома пордукта

        for (int i = 0; i < m; i++) {

            sum[i] = A[i];

        }

  
// Взять когда-либо член первого полинома

        for (int i = 0; i < n; i++) {

            sum[i] += B[i];

        }

  

        return sum;

    }

  
// Полезная функция для печати полинома

    static void printPoly(int poly[], int n) {

        for (int i = 0; i < n; i++) {

            System.out.print(poly[i]);

            if (i != 0) {

                System.out.print("x^" + i);

            }

            if (i != n - 1) {

                System.out.print(" + ");

            }

        }

    }

  
// Программа драйвера для проверки вышеуказанных функций

    public static void main(String[] args) {

        // Следующий массив представляет полином 5 + 10x ^ 2 + 6x ^ 3

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

  

        // Следующий массив представляет полином 1 + 2x + 4x ^ 2

        int B[] = {1, 2, 4};

        int m = A.length;

        int n = B.length;

        System.out.println("First polynomial is");

        printPoly(A, m);

        System.out.println("\nSecond polynomial is");

        printPoly(B, n);

        int sum[] = add(A, B, m, n);

        int size = max(m, n);

        System.out.println("\nsum polynomial is");

        printPoly(sum, size);

  

    }

}

python3

# Простая программа на Python 3 для добавления двух
# полиномы

  
# Функция полезности для возврата максимума
# из двух целых

  
# A [] представляет коэффициенты первого полинома
# B [] представляет коэффициенты второго полинома
# m и n - размеры A [] и B [] соответственно

def add(A, B, m, n):

  

    size = max(m, n);

    sum = [0 for i in range(size)]

  

    # Инициализировать полином многократно

      

    for i in range(0, m, 1):

        sum[i] = A[i]

  

    # Возьмите когда-либо член первого полинома

    for i in range(n):

        sum[i] += B[i]

  

    return sum

  
# Полезная функция для печати полинома

def printPoly(poly, n):

    for i in range(n):

        print(poly[i], end = "")

        if (i != 0):

            print("x^", i, end = "")

        if (i != n - 1):

            print(" + ", end = "")

  
Код водителя

if __name__ == '__main__':

      

    # Следующий массив представляет

    # полином 5 + 10x ^ 2 + 6x ^ 3

    A = [5, 0, 10, 6]

  

    # Следующий массив представляет

    # полином 1 + 2x + 4x ^ 2

    B = [1, 2, 4]

    m = len(A)

    n = len(B)

  

    print("First polynomial is")

    printPoly(A, m)

    print("\n", end = "")

    print("Second polynomial is")

    printPoly(B, n)

    print("\n", end = "")

    sum = add(A, B, m, n)

    size = max(m, n)

  

    print("sum polynomial is")

    printPoly(sum, size)

      
# Этот код предоставлен
# Sahil_Shelangia

C #

// C # программа для добавления двух полиномов

using System;

class GFG {

  

    // Вспомогательная функция, возвращающая максимум двух целых

    static int max(int m, int n) 

    {

        return (m > n) ? m : n;

    }

  

    // A [] представляет коэффициенты первого полинома

    // B [] представляет коэффициенты второго полинома

    // m и n - размеры A [] и B [] соответственно

    static int[] add(int[] A, int[] B, int m, int n)

    {

        int size = max(m, n);

        int[] sum = new int[size];

  

        // Инициализация полинома пордукта

        for (int i = 0; i < m; i++)

        {

            sum[i] = A[i];

        }

  

        // Взять когда-либо член первого полинома

        for (int i = 0; i < n; i++)

        {

            sum[i] += B[i];

        }

  

        return sum;

    }

  

    // Полезная функция для печати полинома

    static void printPoly(int[] poly, int n)  

    {

        for (int i = 0; i < n; i++)

        {

            Console.Write(poly[i]);

            if (i != 0) 

            {

                Console.Write("x^" + i);

            }

            if (i != n - 1) 

            {

                Console.Write(" + ");

            }

        }

    }

  

    // Код драйвера

    public static void Main() 

    {

        // Следующий массив представляет

        // полином 5 + 10x ^ 2 + 6x ^ 3

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

  

        // Следующий массив представляет

        // полином 1 + 2x + 4x ^ 2

        int[] B = {1, 2, 4};

        int m = A.Length;

        int n = B.Length;

        Console.WriteLine("First polynomial is");

        printPoly(A, m);

        Console.WriteLine("\nSecond polynomial is");

        printPoly(B, n);

        int[] sum = add(A, B, m, n);

        int size = max(m, n);

        Console.WriteLine("\nsum polynomial is");

        printPoly(sum, size);

  

    }

}

  
// Этот код добавлен
// Мукул Сингх

PHP

<?php
// Простая PHP-программа для добавления двух полиномов

  
// A [] представляет коэффициенты первого полинома
// B [] представляет коэффициенты второго полинома
// m и n - размеры A [] и B [] соответственно

function add($A, $B, $m, $n)

{

    $size = max($m, $n);

    $sum = array_fill(0, $size, 0);

      

    // Инициализация полинома пордукта

    for ($i = 0; $i < $m; $i++)

        $sum[$i] = $A[$i];

      

    // Взять когда-либо член первого полинома

    for ($i = 0; $i < $n; $i++)

        $sum[$i] += $B[$i];

      

    return $sum;

}

  
// Полезная функция для печати полинома

function printPoly($poly, $n)

{

    for ($i = 0; $i < $n; $i++)

    {

        echo $poly[$i];

        if ($i != 0)

            echo "x^" . $i;

        if ($i != $n - 1)

        echo " + ";

    }

}

  
// Код драйвера

  
// Следующий массив представляет
// полином 5 + 10x ^ 2 + 6x ^ 3

$A = array(5, 0, 10, 6);

  
// Следующий массив представляет
// полином 1 + 2x + 4x ^ 2

$B = array(1, 2, 4);

$m = count($A);

$n = count($B);

  

echo "First polynomial is \n";

printPoly($A, $m);

echo "\nSecond polynomial is \n";

printPoly($B, $n);

  

$sum = add($A, $B, $m, $n);

$size = max($m, $n);

  

echo "\nsum polynomial is \n";

printPoly($sum, $size);

  
// Этот код предоставлен chandan_jnu
?>


Выход:

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 — порядки двух заданных полиномов.

Эта статья предоставлена Harsh. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Программа для добавления двух полиномов

0.00 (0%) 0 votes