IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Археология, Интересная задача...
RathaR
сообщение 18.07.2009 13:47
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Вот собственно задача, вызвала затруднения...
Условие:
Археологи проводили розкопки древнего города неизвестной нам африканской цывилизации. Во время розкопок им удалось найти листы неизвестного материала с таинственными символами на них. После длительных изучений ученые решили, что эти надписи на самом деле могли быть обычными числовыми равенствами. Это доказывало б то, что население этого города уже имело представление о математике. Ученые поняли, что означают найденые символы, и перевели эти равенства на обычный язык - язык цыфр, скобок, арифметических действий и равенства. Кроме того ученые узнали, что эти люди знали только три арифметических операции: сложение, вычитание и умножение.Также они никогда не использовали "унарный минус": вместо "-2" они писали "0-2". Было доказано, что эти древние люди не наделяли операции разными приоритетами, а просто высчитывали выражения (если в них не было скобок) слева на право: например, 4+7*2 у них ровнялось 22, а не 18.Арифметическим операциям эти люди придавали магического значения и наносили их специальными цветными чернилами, которые как оказалось, были нестойкими, и со временем исчезли. Поэтому вместо знаков действий на найденых листах были пропуски. Если вся вышеописаная теория верна, то вместо пропусков можна поставить знаки действий ( +,-,*), так, чтобы равенство стало правельным. Например если был найден лист с записью:"46=6 3 (7 2) 1", то возможна следующая розтановка знаков"46=6+3*(7-2)+1" (помните про порядок вычисления выражений!). В тоже время если подавалась запись "10=4 4", то написавшый её явно не имел в ввиду числовоё равенство.
Задание: Написать программу, которая найдёт необходимую розтановку знаков, или укажет что подобная розтановка не существует.
Входные данне: Входящий текстовый файл содержит в первой строчке натуральное число, которое не превышает 2^30, знак равенства ы последовательность натуральных чисел (не больше 10), произведение которых не превышает 2^30. Некоторые групы чисел (одна или больше) могут быть взяты в скобки. Длинна ряда не превышает 80 символов. Между двумя соседними симолами не розделёнными скобками всегда будет хоть один пропуск.
Выходной файл содержет полученое равенство, или "-1" если составить его невозможно.

Фантазия с которой составлено условие заслуживает уважения wacko.gif

По поводу решения у меня только одна мысль, не знаю правильна ли: попробовать использовать перебор с отходом назад, начиная со знака равенства подставляем по очереди в пропуски "+","-", и"*", и считаем до тех пор пока не получится нужное значение.... но вот это реализовать неполучаеться, и вообще, верна ли идея? smile.gif


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 21:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"