Найти коэффициенты квадрата многочлена - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д