| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Генерация уравнения |
| Автор: Sergio 6.5.2009, 21:22 | ||||
| Всем привет. Нужно написать программу которая генерирует уравнение типа:
где поля некоторые могут быть пусты. игроку нужно вставить нужные числа, знаки. Например:
Также нужно игроку показать возможные варианты ответа. Как реализовать даную задачу? У меня есть идея но это хардкод и много кода. Заранее спасибо. |
| Автор: cardinal 6.5.2009, 21:33 |
Хочешь меньше, тогда напиши кучу вариантов в ручную в текстовый файл и доставай оттуда случайно попавшийся... |
| Автор: maxim1000 6.5.2009, 23:41 |
| можно генерировать случайно 5 элементов: число, знак, число, знак, число. Потом вычислять получившееся выражение и случайным образом скрывать какие-то из них |
| Автор: Sergio 8.5.2009, 14:46 | ||
maxim1000, так и думаю сделать. Но вот проблемка мне чтобы знать какой знак использовать при вычислении нужно много блоков типа:
это слишком много писать. можно как-то покороче вычислить какой знак по рандому выпал? |
| Автор: maxim1000 9.5.2009, 00:00 |
| хм... да, похоже, тут надо будет писать парсер небольшой правда, думаю, настолько небольшой, что и писать несложно: 1. определить первую операцию (по приоритету) 2. выполнить первую операцию 2. выполнить вторую операцию скобок тут не предвидится, так что сложностей особых, вроде, быть не должно... |
| Автор: _Y_ 9.5.2009, 12:24 |
| Здесь два варианта: сложный и простой. Сложный: Я бы сделал абстрактный класс Calc с абстрактными же методоми calc(x,y) и symbol(). В качестве наследников классы Plus, Minus и так далее - сколько душе угодно. Метод calc(x,y) выдает результат вычисления. Метод symbol() - символ опереции "+", "-" и т.д. для вывода в тексте задания. 1. Согнал бы экземпляры этих классов в массив и из массива выбирал случайным образом. 2. Подставлял бы случайные целые числа и вычислял результат. 3. Случайно прятал бы несколько величин, а спрятанные величины делал одним из вариантов ответа. Простой: Как сказал cardinal, создай таблицу вариантов и выбирай случайным образом. Можно создать таблицу формул, а коеффициенты для них генерировать. Я очень много работал с составлением тестов для студентов и т.п. ИМХО составлять тесты програмно имеет смысл только если надо нагенерировать больше сотни однотипных вариатнов. Меньше - всегда быстрее вручную. Или в каком-нибудь Excel-е. |