Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Решение задач посредством прямого расчётаСодержание книги
Поиск на нашем сайте
Первая технология, которая реализуется в представленном программной средстве – прямой расчёт. Сначала пользователь выбирает предметную область. Для примера рассмотрим задачу на простое прямолинейное движение.
Набор переменных: x - текущая координата xs – начальная координата v – текущая скорость vs – начальная скорость astart – начальное ускорение t - время to – время (1й корень решения уравнения движения относительно t) tt – время (2й корень решения уравнения движения относительно t) Формулы для вычисления:
Затем пользователь загружает непосредственно задачу.
После нажатия кнопки решить мы получаем вывод вида: Ввод (exec) начальной информации: xs = 30.0 Ввод (exec) начальной информации: vs = 10.0 Ввод (exec) начальной информации: astart = -10.0 Ввод (exec) начальной информации: x = 10.0 Step 0:
Применение шаблона to = ((-1)*(vs) + math.sqrt(((vs)**2) - 2*((xs)-(x))*(astart)))/(astart) для переменной to (to = ((-1)*(vs) + math.sqrt(((vs)**2) - 2*((xs)-(x))*(astart)))/(astart)) to to = -1.23606798 Переменная to не удовлетворяет параметрам внешней среды (to > 0) Step 1:
Применение шаблона tt = ((-1)*(vs) - math.sqrt(((vs)**2) - 2*((xs)-(x))*(astart)))/(astart) для переменной tt (tt = ((-1)*(vs) - math.sqrt(((vs)**2) - 2*((xs)-(x))*(astart)))/(astart)) tt tt = 3.23606798 Таким образом, мы получаем решение задачи (подсчёт переменных посредством прямого математического расчёта, то есть подстановки) и проверку на удовлетворение полученного параметрам внешней среды. Непосредственно рекурсия здесь не применяется, но если мы изменим условия задачи следующим образом:
Ввод (exec) начальной информации: xs = 30.0 Ввод (exec) начальной информации: vs = 10.0 Ввод (exec) начальной информации: astart = -9.8 Step 0:
Применяем правило v=0 Применение шаблона x = (xs) + (vs)*t + (astart)*(t**2)/2 для переменной x (x = (xs) + (vs)*t + (astart)*(t**2)/2) Какая-то из переменных правой части правил не может быть найдена в условиях и/или других правилах, ожидается name 't' is not defined Поиск 't' Применение шаблона t = (v-vs)/astart для переменной t (t = (v-vs)/astart) t t = 1.02040816 Step 1:
Применение шаблона x = (xs) + (vs)*t + (astart)*(t**2)/2 для переменной x (x = (xs) + (vs)*t + (astart)*(t**2)/2) x x = 35.10204082 Таким образом видно, что программа попыталась применить искомый шаблон для нахождения переменной x, но, так как не смогла его найти, то начала рекурсивный поиск шаблонов для решения концептуальной подзадачи – нахождения t как переменной, которая требуется для нахождения x. После того, как данная шаблон (формула) для нахождения t была найдена, идёт её применения. В случае ошибки программа бы рекурсивно перешла дальше и так до тех пор, пока не кончились бы все формулы. После того, как шаблон для t был найден, идёт вторая попытка применения шаблона для x. В случае успеха происходит вывод. Следует отметить, что процесс поиска вспомогательных концептуальных задач последовательный, так как интерпретатор языка выводит ошибку при нахождения первого несоответствия и не просматривает строку дальше. Таким образом, можно решать задачи практически любой сложности. Глубину рекурсии также можно регулировать во избежание попадания в бесконечный цикл. Можно выделить две базовые задачи эксперта по моделированию. Первая – это наполнение базы данных и знаний (по сути – математических формул) для предметной области. Вторая – правильное описание данных для нахождения решения данной конкретной задачи. Принципиальная схема решения:
Судоку Судоку (яп. 数独 су:доку) — популярная головоломка-пазл с числами. В переводе с японского «су» — «цифра», «доку» — «стоящая отдельно». Иногда судоку называют «магическим квадратом», что в общем-то не верно, так как судоку является латинским квадратом 9-го порядка. Судоку активно публикуют газеты и журналы разных стран мира, сборники судоку издаются большими тиражами. Решение судоку — популярный вид досуга. Игровое поле представляет собой квадрат размером 9x9, разделённый на меньшие квадраты со стороной в 3 клетки. Таким образом, всё игровое поле состоит из 81 клетки. В них уже в начале игры стоят некоторые числа (от 1 до 9), так как незаполненное игровое поле не имеет смысла. В зависимости от того, сколько клеток уже заполнены, конкретную судоку можно отнести к лёгким или сложным. Существует несколько методов решения судоку. Условно их можно разделить на две категории – логические и вычислительные. К вычислительным методам относится метод полного перебора (BruteForce). Логические – метод одиночного квадрата, закрытого кандидата, голой и скрытой пары, крыло, slicing and dicing и методы предположений различного уровня. Методы составления судоку начинаются с составления правильного латинского квадрата. Дальнейшее составление идёт либо постепенным вычёркиванием чисел и проверкой на возможность решения, с оценкой сложности по количеству итераций и применяемому методы, либо открытием определённого числа закрытых клеток. Причём как в первом, так и во втором случае вообще говоря судоку может получиться недетерменированным (то есть допускающим несколько вариантов решения для одних и тех же исходных данных). Исходный вид разработанной программы при решении судоку такой:
Решение судоку
|
||||
|
Последнее изменение этой страницы: 2016-12-13; просмотров: 256; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.5 (0.009 с.) |