![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]()
хм спасиб, народ а вы бы не могли дать полный код такой проги?
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Проблема в том, что даже на самых быстрых ЭВМ расчёты для такой задачи будут длится не одну сотню лет
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]()
люди пожалуйста, немогли бы вы дать четкий код проги, умоляю...очень надо, пожалуйста
|
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]()
люди, ну пожалуйста...дайте кто нибудь полный код этой проги...
умоляю...очень надо |
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Предлагаю вот такой вариант.
Может несколько усложнено, но оптимизировать уже не хочется. Суть метода. Получаем все возможные варианты строк, сумма чисел в которых = 20 Таких строк всего около 5000. Так как в некоторых позициях числа уже известны из этого множества можно сделать выборку. Таким образом для каждой строки и каждой колонки получаем списки вариантов, которые заведомо подходят под указанную матрицу и сумма чисел = 20. Но даже в этом случае прямой перебор всех вариантов это слишком долго. Вместо этого делаем следующее: берем пустую матрицу. Записываем в нее один из вариантов для первой строки. Записываем вариант первой колонки. Дальше - вторая строка и вторая колонка и так далее. Процесс записи оформляем как рекурсию. В этом случае неправильные варианты отсеиваются быстрее, чем при прямом переборе. Готовые варианты помещаются в ListBox. Проблема в том, что для взятого мной примера их очень много, поэтому пришлось ограничить количество выводимых вариантов. Вот один из возможных ответов. 07229 00389 66152 64550 83900 Код во вложении. |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]() Код:
|
![]() |
![]() |
![]() |
#17 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Ни разу не увидел упоминания языка на котором Вы пишете.
Код, который я привел - на Delphi. TStringList - список строк. Если Вы пишете на Паскале, рекомендую заменить его на динамически размещаемый массив строк: type StringList = array [0..6000] of String[5]; TStringList = ^StringList; или используйте другой походящий вариант. Описание метода я привел, рабочий код тоже. Разбираться Вам. |
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]()
я пишу тоже на Delphi, но все равно есть ошибка с TStringList
|
![]() |
![]() |
![]() |
#19 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]() |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 22.05.2008
Сообщений: 13
|
![]()
alexBlack
ничего не получается, ты не мог бы дать скомпилированный код |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исходник игры "судоку" На языке С++ | FAk | Общие вопросы C/C++ | 2 | 15.05.2008 18:47 |
помогите с задачей "методы решения уравнений" | kano | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 22.02.2008 20:52 |
"Транспортная задача", "Поиск решения" | Perroman | Microsoft Office Excel | 3 | 12.12.2007 17:12 |