2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Найти число перестановок
Сообщение25.04.2013, 22:32 
Аватара пользователя


01/12/11

8634
Найти число перестановок $a, b, c, d, e, f, g, h$ множества $\{1, 2, 3, 4, 5, 6, 7, 8\}$, удовлетворяющих следующим условиям:
$$
\begin{cases}
a<b,\quad c<d,\quad e<f,\quad g<h \\
b>c,\quad d>e,\quad f>g
\end{cases}
$$

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 04:49 
Заслуженный участник


18/01/12
933
У меня получилось 1385. Считал в уме, но вроде бы не обсчитался.

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 10:29 
Заслуженный участник


18/01/12
933
Проверил. Действительно 1385.

Изображение

В средней части таблицы:
В столбце с нечётным $n$ добавляется (по сравнению со столбцом $n-1$) число снизу, и каждое число равно сумме чисел стоящих не ниже в столбце $n-1;$
В столбце с чётным $n$ добавляется (по сравнению со столбцом $n-1$) число сверху, и каждое число равно сумме чисел стоящих не выше в столбце $n-1.$
Сумма чисел в столбце $n$ в средней части таблицы — искомое количество перестановок чисел от 1 до $n$ (записано в нижней строке).

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 10:42 
Заслуженный участник
Аватара пользователя


19/12/10
1546
hippie в сообщении #715598 писал(а):
У меня получилось 1385. Считал в уме, но вроде бы не обсчитался.

Удивило, что их так много.
Для проверки слабал программку.
Получил тоже самое число 1385.
код: [ скачать ] [ спрятать ]
Используется синтаксис C++
#include <iostream>
#include <algorithm>

using namespace std;

const int razm = 8;
int mass[razm] = {1,2,3,4,5,6,7,8};
int chis;

int main(){
        while(next_permutation(mass, mass + razm)){
                bool flag = true;
                for(int i = 0; i < razm - 1; i++) flag &= i & 1 ? mass[i] > mass[i + 1] : mass[i] < mass[i + 1];
                if(flag) chis++;
        }
        cout << chis << endl;
        return 0;
}

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 11:23 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
И так выходит 1385:
Код:
Length[Select[Permutations[Range[8]], #[[1]] < #[[2]] && #[[3]] < #[[4]] && #[[5]] < #[[6]] && #[[7]] < #[[8]] && #[[2]] > #[[3]] && #[[4]] > #[[5]] && #[[6]] > #[[7]] &]]

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 21:29 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории

(Оффтоп)

Массразм какой-то :lol:

Aritaborian, там можно тупо писать:
Код:
Length[Select[Permutations[Range[8]], #[[1]] < #[[2]] > #[[3]] < #[[4]] > #[[5]] < #[[6]] > #[[7]] < #[[8]] &]]

 Профиль  
                  
 
 Re: Найти число перестановок
Сообщение26.04.2013, 22:53 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
ИСН, о да. Но я писал первое, что пришло в голову.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group