Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2011, 18:02   #1
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию Работа с полиномом C#

Дан многочлен P(x) степени N получить многочлен P(x+1) - P(x)
Вот написал код для нахождения биномиальных коэффициентов степени (х+1)^N Подскажите как бы его вставить в прогу???
Код:
namespace проверка
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int N = Convert.ToInt32(numericUpDown1.Value);
            int[] m = new int[N+1];//массив фактариалов k
            int[] n = new int[N + 1];//массив числителей
            int[] t = new int[N + 1];//массив коэфициентов
            
            for (int k = 0; k < N+1; k++)
            {
                int g = 1;
                for (int l = 1; l < k+1; l++)
                {
                    
                    g = g * l;
                    
                }
                m[k] = g;
                label2.Text += Convert.ToString(m[k]) + " ";
            }
            for (int k = 0; k < N + 1; k++)
            {
                int z = N;
                for (int i = 1; i < k; i++)
                {
                    z = z * (N - i);
                }
                n[k] = z;
                label3.Text += Convert.ToString(n[k]) + " ";
            }
            for (int k = 0; k < N + 1; k++)
            {
                t[k] = n[k] / m[k];
                t[0] = 1;
                label4.Text += Convert.ToString(t[k]) + " ";
            }
        }
    }
}
JinAnton вне форума Ответить с цитированием
Старый 06.06.2011, 08:59   #2
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Объяви переменную t как глобальную (вынеси объявление за процедуру), и используй ее при вычислении, или просто передавай ее в функцию как переметр, которая считает многочлен.

P.S. это можно вынести из цикла. t[0] = 1;
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 06.06.2011, 11:35   #3
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

KobolD извините посмею предположить что вы не правильно поняли вопрос, эту прогу я написал для одной какой либо степени а как сделать если сразу задан полином например 3x^18+38x^15...+4 (т.е. 4x^0) как правильнее сделать чтобы он посчитал все коэфициенты отдельно и сложил коэфициенты при одинаковых степенях
JinAnton вне форума Ответить с цитированием
Старый 06.06.2011, 13:10   #4
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

тогда опиши поподробнее какие у тебя входные данные, а то у тебя функция ничего не принимает и ничего не возвращает.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 06.06.2011, 13:54   #5
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

ну как я себе это прдставляю
интерфейс:
кол-во столбцов равно макс степени (numericUpDown) всего 2 строки 1 срока это степень 2 коэфциенты Так задаеться P(x) вот и все входные данные а мне нужно сделать из этого P(x+1)-P(x)
например задаеться
3 2 1 0
1 1 1 1 Это X^3+X^2+X +1 прога должна выдать X^3+4*X^2+6*X+4
JinAnton вне форума Ответить с цитированием
Старый 06.06.2011, 13:54   #6
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

блин картинка не загружаеться
http://foto.mail.ru/list/jin-92/_myphoto/35.html# можно здесь посмотреть
JinAnton вне форума Ответить с цитированием
Старый 06.06.2011, 14:06   #7
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Попробуй так
Код:
        int[] newPolinom(int[] inner)//inner - массив коэфициентов твоего полинома. Функция вернет массив коэффициентов нового (искомого) полинома (x+1);
        {
            int[] outer = new int[inner.Length];//массив искомых коэфициентов
            for (int n = 0; n < inner.Length; n++)
                for (int k = 0; k <= n; k++)
                    outer[k] += inner[k] * Binom(k, n);
            return outer;
        }

        int Binom(int k, int n)//Нахождение биноминального коэфициента номер k степени n
        {
            return ((int)(Factorial(n, k) / Factorial(k)));
        }

        Int64 Factorial(int n)//нахождение факториала
        {
            Int64 F = 1;
            for (int i=2;i<=n;i++)
                F*=i;
            return F;
        }

        Int64 Factorial(int n, int k)//нахождение частичного факториала
        {
            Int64 F = 1;
            for (int i = 0; i < k; i++)
                F *= n-i;
            return F;
        }
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 06.06.2011, 14:17   #8
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

мне нужно только одно
как в полиноме сделать чтобы прога складывала именно те коэфициенты которые нужно и вообще как бы их правильно отсартировывать??
JinAnton вне форума Ответить с цитированием
Старый 06.06.2011, 14:33   #9
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Ну так я тебе написал все.
выполни
Код:
            int[] Tmp={1,1,1,1};
            Tmp = newPolinom(Tmp);
и посмотри что получится в массиве.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 06.06.2011, 16:06   #10
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию

блин я не могу разобраться как работает этот код чтоб его дописать Хд не дорос еще(((
JinAnton вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с полиномом! C# JinAnton Помощь студентам 0 04.06.2011 16:57
CRC c полиномом MODBUS Gawwws Microsoft Office Excel 2 27.02.2010 00:10
CRC c полиномом MODBUS Gawwws Помощь студентам 0 26.02.2010 20:50
Помогите....с полиномом! alisa87 Общие вопросы C/C++ 1 26.05.2009 16:13