2014 dxdy logo

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

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




 
 Найти число перестановок
Сообщение25.04.2013, 22:32 
Аватара пользователя
Найти число перестановок $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 
У меня получилось 1385. Считал в уме, но вроде бы не обсчитался.

 
 
 
 Re: Найти число перестановок
Сообщение26.04.2013, 10:29 
Проверил. Действительно 1385.

Изображение

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

 
 
 
 Re: Найти число перестановок
Сообщение26.04.2013, 10:42 
Аватара пользователя
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 
Аватара пользователя
И так выходит 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 
Аватара пользователя

(Оффтоп)

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

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

 
 
 
 Re: Найти число перестановок
Сообщение26.04.2013, 22:53 
Аватара пользователя
ИСН, о да. Но я писал первое, что пришло в голову.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group