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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2019, 13:43   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от val_nnm Посмотреть сообщение
Если интересно динамическое программирование то вот набросал код.
Правда набросал на C# при желании можно перевести на C++
Вас не смущает то, что программа выдаёт некорректные результаты?

сравните, например, с http://programmersforum.ru/showpost....69&postcount=8

p.s. строчку начальных номеров я изменил в соответствии с условиями задачи.
Код:
            long[] current = new long[10] { 0, 1, 1, 1, 1, 1, 1, 1, 0, 1 }; //Список разрешённых для старта цифр (если 1 то соответсвующая цифра разрешена для старта)
ДОБАВЛЕНО
нашёл ошибку.
неверно были заполнены исходные данные по переходам.
Правильно вот так:
Код:
        static int[][] AvailableSteps = 
        {
            new int[] { 4,6 }, //Список кнопок откуда можно попасть на кнопку 0
            new int[] { 6,8 }, //Список кнопок откуда можно попасть на кнопку 1
            new int[] { 7,9 }, //Список кнопок откуда можно попасть на кнопку 2
            new int[] { 4,8 }, //Список кнопок откуда можно попасть на кнопку 3
            new int[] { 3,9,0 }, //Список кнопок откуда можно попасть на кнопку 4

            new int[] { }, //Список кнопок откуда можно попасть на кнопку 5
            new int[] { 0,1,7 }, //Список кнопок откуда можно попасть на кнопку 6
            new int[] { 2,6 }, //Список кнопок откуда можно попасть на кнопку 7
            new int[] { 1,3 }, //Список кнопок откуда можно попасть на кнопку 8
            new int[] { 2,4 }, //Список кнопок откуда можно попасть на кнопку 9
        };
всё равно целочисленной разрядности хватает ~n=52, для больших n нужно, наверное, длинную арифметику юзать!

Последний раз редактировалось Serge_Bliznykov; 27.03.2019 в 14:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2019, 14:14   #22
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Спасибо за замечание.
Действительно я пропустил 2 хода ведущие на кнопку 0.

Да для больших n действительно не хватает разрядности. Но по крайней мере он до 50 считает очень быстро.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Старый 27.03.2019, 14:17   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от val_nnm Посмотреть сообщение
Да для больших n действительно не хватает разрядности. Но по крайней мере он до 50 считает очень быстро.
Это правда.
В этом и есть могущество ДП.
Спасибо за пример!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен сборщик телефонных номеров из Excel. Интеко Microsoft Office Excel 9 28.02.2018 17:29
Сохранение нескольких телефонных номеров клиента Xezon Общие вопросы по программированию, компьютерный форум 3 22.05.2016 11:56
Ходом коня обойти шахматную доску NхM Рон99 Паскаль, Turbo Pascal, PascalABC.NET 2 02.11.2011 17:17
Импорт телефонных номеров из excel в access jen9tko Microsoft Office Access 0 08.11.2010 15:34
БД телефонных номеров ElenaOrsk Общие вопросы Delphi 0 31.05.2009 12:25