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 ] 

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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