Написать программу которая решает уравнение - C#
Формулировка задачи:
Нужно написать программу, которая решает уравнение
задано два массива
нужно найти
Помогите пожалста??? здесь самое трудно ето организовать цикл
Решение задачи: «Написать программу которая решает уравнение»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace Convolution
{
class Convolution
{
private int[] x;
private int[] y;
public void Initialization()
{
x = new[] { 1, 5 };
y = new[] { 5, 4, 3 };
Console.WriteLine("Были введены следующие векторы:\n");
Console.Write("Вектор х:");
foreach (int i in x)
Console.Write(i+" ");
Console.Write("\nВектор у:");
foreach (int i in y)
Console.Write(i+" ");
}
private int[] DefineConvolution()
{
bool full=false;
int difference = x.Length - y.Length;
if (difference < 0)
{
int[] temp;
temp = x;
x = y;
y = temp;
difference = Math.Abs(x.Length - y.Length);
}
y = y.Reverse().ToArray();//поменять х на у для линейной свёртки
List<int> yList = y.ToList();
for (int i = 0; i < difference; i++)
yList.Insert(0, 0);
y = yList.ToArray();
int[] result=new int[x.Length+y.Length-1];
for (int r = 0; r <result.Length ; r++)
{
if (r > x.Length - 1) full = true;
if (!full)
for (int j = 0; j < r + 1; j++)
result[r] += x[j] * y[y.Length - 1 - r + j];
else
{
yList.Insert(0,0);
yList.RemoveAt(yList.Count-1);
y = yList.ToArray();
result[r] = ArrayMultiplacation(x, y);
}
}
List<int> resultList = new List<int>();
resultList = result.ToList();
resultList.RemoveRange(result.Length - difference, difference);
result = resultList.ToArray();
return result;
}
private int ArrayMultiplacation(int[] a, int[] b)
{
int sum = 0;
for (int i = 0; i < a.Length; i++)
{
sum+=a[i]*b[i];
}
return sum;
}
public void ShowResult()
{
Console.WriteLine("\nИх свёртка равна вектору:");
foreach (int i in DefineConvolution())
Console.Write(i+" ");
Console.Read();
}
}
}