![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 08.10.2010
Сообщений: 7
|
![]()
нужно написать программу на Delphi, которая определяет количество способов выложить пол 4х10 плиткой размером 1х2.
Желательно сделать с помощью чисел Фибоначчи, но каким образом, не знаю. Да и если даже делать перебором, не пойму как это сделать. Заранее спасибо ) |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
![]()
размер и число вариантов
(1,2) =1 (2,2) =2 (3,2) =3 (4,2) =5 (4,3) =8 ........... продолжаем, замечаем закономерность, доказываем ее, получаем ответ.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 08.10.2010
Сообщений: 7
|
![]()
если продолжить, получается что если квадрат 4х4, то количество способов 13.. но их гораздо больше, я проверяла.
такое соотношение верно для прямоугольников 2хN, где количество способов равно N-му номеру чисел Фибоначчи |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 27.08.2010
Сообщений: 95
|
![]()
У нас прямоугольник 4х10, что эквивалентно двум 2х10. Назовём н-ое число последовательности Фибоначчи F(n) Тогда кол-во вариантов для одного прямоугольника равно F(10), поскольку его размер равен 2х10. Для второго прямоугольника - аналогично. Теперь зафиксируем один способ расстановки в 1-ом прямоугольнике, а во втором переберём все возможные варианты. Тоже самое проделаем для второго, третьего и т. д. В итоге у нас получится F(n) вариантов выбора для 1-ого прямоугольника по F(n) вариантов размещения второго. Ответ: F(n)*F(n)=F(n)^2.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 08.10.2010
Сообщений: 7
|
![]()
все равно это будет не все количество вариантов. вы поделили прямоугольник на два вертикальных, а можно также выделить один прямоугольник 2х10 посередине, тогда по бокам останутся два прямоугольника 1х10. И некоторые из этих вариантов не входят в число тех, про которые говорите вы.
получается, количество F[10]^2+F[10], но как учесть повторяющиеся и, следовательно, избавиться от них? |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]()
Рассмотрим 3 случая на краю:
tile.png Количество способов для случая t размера x (x - длина части шириной 4). Код:
О, нашёл: http://oeis.org/classic/b005178.txt Последовательность A005178 a(n)=a(n-1)+5a(n-2)+a(n-3)-a(n-4) Последний раз редактировалось Somebody; 10.10.2010 в 14:08. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 08.10.2010
Сообщений: 7
|
![]()
спасибо, но может кто-то сможет помочь с выводом формулы через производящую функцию? буду очень признательна.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить количество букв | bratello41 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 23.06.2010 15:23 |
определить количество букв в предложении | bratello41 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 12.06.2010 09:31 |
Определить количество тары | Ehha1234 | Общие вопросы C/C++ | 1 | 03.06.2010 23:19 |
Определить количество вхождений строки S1 в строку S2 | Berckyt | Microsoft Office Word | 5 | 16.03.2009 00:27 |
Возможно ли определить количество акаунтов Windows | bayern | JavaScript, Ajax | 1 | 22.09.2007 22:46 |