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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2015, 11:17   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для 40 левых ножек и 40 правых ножек эта задача как шахматная доска, в которою в каждую клетку положили в два раза больше зернышек чем в предыдущую клетку. Если 11 левых и 11 правых, то вариантов 49893498214560000, а если 12 левых и 12 правых, то результат уже не помещается в int64

Код:
function NumbOfComb(VLeft,VRight: Byte; m: Int64): Int64;
begin
  if (VLeft=0) and (VRight=1) then Result:=m
  else begin
    Result:=0;
    if VLeft>0 then Result:=Result+NumbOfComb(VLeft-1,VRight+1,m*VLeft);
    if (VRight>1) or ((VRight=1) and (VLeft>0)) then Result:=Result+NumbOfComb(VLeft,VRight-1,m*VRight);
  end;
end;

  n:=11;
  Label1.Caption:=IntToStr(NumbOfComb(n-1,1,1));
  // 2 -                      3
  // 3 -                     30
  // 4 -                    630
  //...
  //10 -    237 588 086 736 000
  //11 - 49 893 498 214 560 000
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.06.2015, 21:11   #12
Ovenvan
Пользователь
 
Регистрация: 09.06.2015
Сообщений: 21
По умолчанию

Спасибо Вам большое за помощь. Но не могли бы Вы поподробнее объяснить данное решение, почему именно так. Просто ну очень хочется понять, сам достаточное время потратил на задачу.
Ovenvan вне форума Ответить с цитированием
Старый 14.06.2015, 21:22   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Достаточно подробно не могу и не хочу. А не подробно - сделал табличку (дерево если хочешь в таком виде) для 3 левых и 3 правых, определил закономерность и запрограммировал её. Табличка примерно такая. L и R думаю понятно, а цифирки - количество вариантов
Изображения
Тип файла: jpg Безымянный.jpg (41.8 Кб, 42 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 14.06.2015 в 21:24.
Аватар вне форума Ответить с цитированием
Старый 14.06.2015, 22:48   #14
Ovenvan
Пользователь
 
Регистрация: 09.06.2015
Сообщений: 21
По умолчанию

Уже стало немного понятнее, спасибо ещё раз. Вы очень сильно помогли.
Ovenvan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить количество всех возможных способов укладки паркета Cat_from_Napoli Помощь студентам 0 16.04.2015 08:26
Перебор всех возможных вариантов заполнения матрицы 0 или 1 для дальнейшего использования. Don Barochelli Помощь студентам 0 16.12.2011 21:29
Генерация всех возможных вариантов NanaTich Помощь студентам 6 23.05.2011 07:00
Перебор всех возможных вариантов phenix Помощь студентам 3 03.12.2010 21:29
Перебор всех возможных вариантов [MI_nor] Общие вопросы C/C++ 9 01.04.2009 21:17