Найти коэффициенты квадрата многочлена - C#

Узнай цену своей работы

Формулировка задачи:

Я школу 20 лет назад закончил...я вообще ничего не помню по этой теме.... Я правильно понимаю что мне надо найти a, b и c ? Хоть намекните кто-нибудь как это решается...я в шоке культурном нахожусь Задание Даны числа N (натуральное от 1 до 100), (целые, по модулю не больше 1000)- коэффициенты многочлена от переменной : От меня требуется найти 2*N+1 чисел - коэффициенты квадрата данного многочлена, начиная со старшего, т.е. многочлена . Начальные данные: в первой строке ввода содержится число N, во второй строке - N+1 число: через пробел. Вывод результата: строка в которой 2*N+1 чисел выведены через пробел - коэффициенты возведенного в квадрат многочлена. В примере P(x)=x+3, ответом будут числа 1,6 и 9
мне тут подсказывают что необходимо вывести формулы с 4, 5 и 6 коэф. тогда можно будет увидеть зависимость...
что такое x+3 - это 1*x+3 тогда если N=2, и a2=1, a1=4, a0=6 (допустим)...то P(x)=1*x^1+4*x+6 , P(x)^2 = (x+4x+6)^2 я правильно понимаю данную тему?

Решение задачи: «Найти коэффициенты квадрата многочлена»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication199
{
    class Program
    {
        public static void Main()
        {
            //исходные коэффиценты по степеням X
            var inputKoefs = new SortedDictionary<int, double>();
 
            //вводим данные
            Console.Write("N: ");
            var n = int.Parse(Console.ReadLine());
 
            //
            Console.Write("Коэффициенты: ");
            var parts = Console.ReadLine().Split(' ');
            for (int i = 0; i < n + 1; i++)
                inputKoefs[n - i] = double.Parse(parts[i]);
 
            //считаем (результирующие коэфф по степеням X)
            var outputKoefs = CalcSquare(inputKoefs);
 
            //выводим
            Console.WriteLine("Результат:");
            foreach(var pair in outputKoefs)
                Console.WriteLine("a{0}: {1:0.00}", pair.Key, pair.Value);
 
            Console.ReadLine();
        }
 
        private static SortedDictionary<int, double> CalcSquare(SortedDictionary<int, double> inputKoefs)
        {
            var res = new SortedDictionary<int, double>();
 
            foreach(var pair1 in inputKoefs)
            foreach(var pair2 in inputKoefs)
            {
                var resPower = pair1.Key + pair2.Key;//степени складываются
                var resKoef = pair1.Value*pair2.Value;//коэфф умножаются
 
                if (res.ContainsKey(resPower))
                    res[resPower] += resKoef;//если такая степень уже была - добавляем коэфф к уже существующему
                else
                    res[resPower] = resKoef;//если такой степени еще не было - просто запоминаем
            }
 
            return res;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы