Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы курсовых С++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
81.92 Кб
Скачать
  1. Моделирование динамической системы (электродинамика, гравитация)

Даны n неподвижных электрических зарядов. В поле, создаваемое ими, залетает новый заряд. Требуется определить траектории всех зарядов. В первом приближении пользоваться ньютоновской динамикой, а заряды считать точечными.

Модификация 1: в поле залетает несколько зарядов.

Модификация 2: аналогичную задачу решить для точечных масс, взаимодействие – гравитационное.

  1. Моделирование численности животных в экосистеме («хищник-жертва»)

Присутствует популяция травоядных, поглощающих с определённой скоростью (функция от размера популяции и количества пищи) доступное пропитание. Популяция обладает возможностью приращивать количество особей естественным путём. При повышении возраста особи увеличивается вероятность смерти. Кроме этого, существует аналогичная популяция хищников, скорость размножения которых зависит от размера популяции травоядных. Необходимо построить математическую модель, отражающую изменение численности популяций во времени.

  1. Моделирование сбалансированного дерева

Для хранения некоторой (произвольной) информации реализовать класс сбалансированного дерева (при добавлении необходимо делать повороты, чтобы высоты левого и правого поддеревьев любого узла различались не более, чем на 1).

Реализовать набор необходимых конструкторов (пустой или сразу – из массива), деструктор.

Перегрузить операции “+”, “-” – добавить и извлечь элемент из дерева

Перегрузить операцию “>>” – вывод одного элемента дерева, вывод всего дерева

Обеспечить возможность поиска по дереву, сохранения дерева в файл и извлечения его оттуда; реализовать функцию, проходящую по дереву и применяющую некоторую функцию, передаваемую по указателю, ко всем элементам дерева

*Реализовать независимую от типа данных реализацию дерева

  1. Моделирование игры «Крестики-нолики»

Написать аналог игры. Количество крестиков или ноликов, необходимых для победы, сделать изменяемым параметром.

  1. Реализация эффективного поиска подстроки

Для класса String предлагается реализовать применяемые на практике методы поиска подстроки: не обычный поиск в лоб, а усовершенствованные, более эффективные, методы.

  • Алгоритм Боуера – Мура и его модификации.

  • Алгоритм Кнута-Морриса-Пратта.

Для класса «Совпадение» перегрузить операцию ‘>>’ – вывод номера позиции, куска текста, где обнаружено совпадение.

  1. Реализация (эффективного) нечёткого поиска подстроки

Для класса String предлагается реализовать нечёткий поиск: строки проверяются не до первого несовпадения, а вычисляется процент несовпадения. Если процент выше граничного, фиксируется совпадение. Например:

“Text”, “testa” => совпадение - 60% или 75%.

*Использовать при поиске усовершенствованные методы из варианта 21.

  1. Построение многослойной нейронной сети без обратных связей на нейронах с нелинейной функцией активации (1-2 чел.)

Реализовать класс «Нейрон», который вычисляет взвешенную сумму своих входов и применяет к ней функцию активации (обычно th(x) или сигмоид).

Реализовать класс «Слой», содержащий n нейронов.

Реализовать класс «Сеть», состоящий из m слоёв нейронов. Сеть может быть полносвязной (рекомендуется унаследовать класс «Полносвязная сеть» от стандартного класса).

Требуется реализовать возможность передачи сигналов от входов сети к выходам. Для этого нужно добавить необходимые функции во все классы в решении.

Реализовать любой алгоритм обучения сети (обычно метод обратного распространения ошибки).

Реализовать сохранение/извлечение состояния сети в/из файла.

Конкретная задача из предметной области согласуется между преподавателем и студентом.