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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 15:19   #1
Luyda
Новичок
Джуниор
 
Регистрация: 08.06.2012
Сообщений: 1
По умолчанию найти перестановки {1,....n}, n! перестановок

помогите пожалуйста, у меня задача найти совершенную последовательность удовлетворяющую условиям:
- последовательность содержит все числа 1, 2,.... 2в степени N;
- ee длина не превосходит 2N;
- все числа в последовательности различны;
сумма любых ее первых k членов делится на k.
Например последовательность 1,3,2,6,8 является 3-совершенной.
я решила задачу методом сочетаний и мне нужно для каждого сочетания найти перестановки {1,....n}, n! перестановок..Например n=6 это 720 перестановок, не могу сделать чтоб результат выводился в Main, нашла код на паскале по перестановке переделала на C# и не могу довести программу до ума.
Вот мой код..

Код:
public partial class Form1 : Form
    {
        static void B( ref int d, ref  int i)
        {
            int B=0;
            if (d % 2 == 0 && d > 2)
                if (i < d - 1)
                    B = i;
                else
                    B = d - 2;
            else
                B = d - 1;
           
            
        }
        static void Perestanovka(ref int m)
        {
            int []a=new int[m];
            int h= new int();
            string D = "";
            if (m == 1)
            {
                for (int i = 0; i <a.Length; m++)
                {
                    D += a[i];
                    D += " ";
                }
                
                listBox1.Items.Add(D);
                D = "";
            }
            else
                for (int i = 0; i <= m; i++)
                {
                    m = m - 1;
                    Perestanovka(ref m);
                    if (i < m)
                        a[B(ref m, ref i)] = a[m];
                   
                        
                }
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            string D = "";
            int i, p, k1, k, n;
            int N = Convert.ToInt32(textBox1.Text);
            n = (int)Math.Pow(2, N);
            k1 = 2 * N;
            for (k = k1; k >= 1; k--)
            {
                int[] a = new int[k];
                for (i = 0; i < k; i++)
                    a[i] = i + 1;
                p = k;

                while (p >= 1)
                {
                    for (int w = 0; w < a.Length; w++)
                    {
                        D += a[w];
                        D += " ";
                    }
                    listBox1.Items.Add(D);
                    textBox2.Text = Convert.ToString(D);
                    D = "";
                    
                    Perestanovka(ref k);
                        if (a[k - 1] == n)
                            p = p - 1;
                        else
                            p = k;
                    if (p >= 1)
                        for (i = k; i >= p; i--)
                            a[i - 1] = a[p - 1] + i - p + 1;

                }

            }
        }
    }

Последний раз редактировалось ACE Valery; 08.06.2012 в 15:24.
Luyda вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм перестановок ArtGhost Помощь студентам 2 19.10.2013 10:56
Алгоритм перестановок Pirotexnik Visual C++ 0 05.12.2011 13:08
Счетчик перестановок uzumaxy Паскаль, Turbo Pascal, PascalABC.NET 1 12.02.2011 21:23
Генератор перестановок cent Microsoft Office Excel 2 02.01.2009 11:09
генератор перестановок Narkotik Помощь студентам 4 26.11.2008 05:15