Форум программистов, компьютерный форум CyberForum.ru

Найти количество способов - C++

Восстановить пароль Регистрация
 
ProgOleg
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 2
08.12.2013, 17:56     Найти количество способов #1
Есть две задачи:
1. Фишка может перемещаться по полю длиной X только вперед. Размер каждого шага не должен превышать K. Найдите количество способов, которыми фишка может пройти от поля под номером 1 к полю Х.
2. Фишка может перемещаться по полю длиной Х только вперед. Размер каждого шага не должен превышать K. Найдете количество способов, которыми фишка может пройти от поля под номером 1 до поля Х/2.
Буду рад решению хотя бы одной!
Так как я НЕ программист, хотелось бы услышать подробное объяснение кода программы. Надеюсь на понимание!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 17:56     Найти количество способов
Посмотрите здесь:

C++ Подсчитать количество способов замостить шахматную доску доминошками
C++ Найти через индекс количество отрицательных и количество положительных элементов массива
Клетчатая доска - Определить количество способов добраться до последней клетки N-M C++
C++ Подсчитать количество способов размещения, чтобы между числами k было ровно k других чисел
Вычислить количество способов группировки K предметов из N при больших N C++
C++ Составить программу, которая, по данным N и K, вычисляет количество способов группировки K предметов из N
Найти количество способов выбрать трех животных для международной выставки C++
Определить количество способов укладки плиток на оставшиеся места C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProgOleg
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 2
09.12.2013, 21:32  [ТС]     Найти количество способов #2
Ребят, все ещё нужна ваша помощь!

Немного ссылок по теме:
Первая|Вторая|Третья

Вопрос: как из всего этого сделать одну нормально работающую программу?

Никак не пойму, как она должна работать... В каком направлении двигаться? Что почитать?
Много кто интересуется подобной задачей, а вот толкового решения пока не нашел.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.12.2013, 05:07     Найти количество способов #3
Цитата Сообщение от ProgOleg Посмотреть сообщение
Буду рад решению хотя бы одной!
первая:
создаете массив T[] размером X+1. Все элементы массива обнуляете. X[0] делаете равным 1. Затем так:
C++
1
2
3
4
for(int i=1; i<=X; i++)
    for(int j=i-K; j<i; j++)
        if(j>=0)
            T[i]+=T[j];
По окончании цикла ответ будет в T[X].
Цитата Сообщение от ProgOleg Посмотреть сообщение
В каком направлении двигаться? Что почитать?
Почитайте про динамическое программирование.
Yandex
Объявления
10.12.2013, 05:07     Найти количество способов
Ответ Создать тему
Опции темы

Текущее время: 05:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru