• Найти количество вариантов, для заполнения поля 12х2 фигурами 1х2 или 2х1 (использовать можно всего 12 раз ( фигуры 1х2 или 2х1 ))
    Зы.Сы. Поле 3х2 можно заполнить тремя способами.

    Желательно вместе с кодом, но можно и просто число.

Ответы 3

  • Можно файл + название языка?)
    • Автор:

      kalan
    • 6 лет назад
    • 0
  • c++, http://pastebin.com/kWtJiWWa файл к комментам не прикреплялся
  • Тебя интересует левое верхнее число из матрицы \begin{pmatrix}
1 & 1 \\ 1 & 1
\end{pmatrix}^{12}, что, кстати, является 12 числом фибоначчи#include <iostream>// матрица 2 на 2// a  b// c  dtemplate< typename T = int >class matrix2{public:    T a, b, c, d;    matrix2() : a(0), b(0), c(0), d(0)    {}    matrix2(T a, T b, T c, T d) : a(a), b(b), c(c), d(d)    {}    matrix2 & operator *= (matrix2 & other)    {        T ta, tb, tc, td;        ta = a * other.a + b * other.c;        tb = a * other.b + b * other.d;        tc = a * other.c + c * other.d;        td = b * other.c + d * other.d;        a = ta, b = tb, c = tc, d = td;    }    matrix2 operator * (matrix2 & other)    {        T ta, tb, tc, td;        ta = a * other.a + b * other.c;        tb = a * other.b + b * other.d;        tc = a * other.c + c * other.d;        td = b * other.c + d * other.d;        return matrix2(ta, tb, tc, td);    }    matrix2 pow(int power)    {        matrix2 result(1, 0, 0, 1);        matrix2 cur = *this;        while (power)        {            if (power & 1)            {                power ^= 1;                result *= cur;            }            else            {                power >>= 1;                cur *= cur;            }        }        return result;    }    void operator = (matrix2 other)    {        a = other.a;        b = other.b;        c = other.c;        d = other.d;    }    friend std::ostream & operator << (std::ostream & ostr, matrix2 ma)    {        ostr << std::endl;        ostr << ma.a << "  " << ma.b << std::endl;        ostr << ma.c << "  " << ma.d << std::endl;        return ostr;    }};int main(void){    matrix2< int > m1(1, 1, 1, 0), tmp;    const int N = 12;    std::cout << m1.pow(N).a;    return 0;}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years