|
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 181
|
|
Создать 2 класса: Рой частиц и частица: ParticleSwarm и Particle09.03.2014, 21:25. Показов 1947. Ответов 7
Метки нет (Все метки)
Нужно создать 2 класса: Рой частиц и частица: ParticleSwarm и Particle.
Эти 2 класса взаимосвязаны. В ParticleSwarm есть поле, которое отражает наилучший результат, которые достигли частицы за всё своё время существования и поле, которое хранит наилучший результат, который достиг рой частиц за текущую итерацию. Соответственно есть 2 функции, которые определяют лучший результат за текущую итерацию и лучший результат за всё время существования роя. У частиц тоже есть свои поля и функции, например, которые заставляют частицу двигаться. Вопрос заключается вот в чём. Как бы рациональнее организовать. Я полагаю так: Отдельно создать класс PArticleSwarm, а при создании каждой частицы в Public-полях прописать объект класса PArticleSwarm, чтобы каждая частица была превязана к классу PArticleSwarm.Всё это, конечно, будет работать, но мне кажется, что это как-то криво и нерационально придумано. Может дадите совет, как бы вы всё организовали? P.S. я реализую алгоритм роя частиц.
0
|
|
| 09.03.2014, 21:25 | |
|
Ответы с готовыми решениями:
7
Дана строка S. Создать новую строку, состоящую из символов S, у кото- рой к каждому пробелу добавлено два пробела
|
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
|
||||||
| 10.03.2014, 00:04 | ||||||
Сообщение было отмечено Dimarik_1 как решение
Решение
Dimarik_1,
Так, может?
1
|
||||||
|
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 181
|
|
| 10.03.2014, 11:35 [ТС] | |
|
отличная идея. Спасиюл
Добавлено через 35 минут Ещё такой вопрос. А если у класса ParticleSwarm есть поля public, единые для всех частиц, например, максимальное и минимальное значение аргументов. А с этими полями надо будет работать внутри класса Particle. Самым простым способом является объявить такие поля в Particle. Но это неоптимально. В результате будут записываться лишние данные и израсходована лишняя память, без чего можно обойтись. Как бы это было правильнее сделать?
0
|
|
|
Master of Orion
|
||||||
| 10.03.2014, 12:01 | ||||||
0
|
||||||
|
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 181
|
|
| 10.03.2014, 12:10 [ТС] | |
|
Я хочу в классе Particle прописать методы, которые будут передвигать частицу. Но для этого мне внетри этих методов надо знать, какое максимальное и минимальное значение может принимать частица. Создавать отдельно поля для каждой частицы Max и Min я не хочу, потому что они уже созданы в класса ParticleSwarm и для каждой частицы они будут такими же. Зачем засорять память?
Как мне в методах внутри класса PArticle обратиться к полям класса ParticleSwarm? Добавлено через 29 секунд MAx и Min - поля типа double
0
|
|
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
|
|||||||
| 10.03.2014, 20:57 | |||||||
Сообщение было отмечено Dimarik_1 как решение
РешениеНужно в классе Particle создать отдельные поля (или свойства) для Мах и Min. Что, в общем -то логично. Объект типа Particle должен содержать характерный для него функционал и характерные для него свойства. Значения Мах и Min к ним относятся. Если в объекте Particle Мах и Min используются в расчетах однократно, то передайте их из class ParticleSwarm нужным методом в качестве аргументов (если это публичный метод) А class ParticleSwarm пусть занимается своим делом - инициирует создание частицы и работает с ней, как с самостоятельным объектом, а не хранит единолично чужие поля. Позже, вы сможете выкинуть(переделать) class ParticleSwarm, но поведение объекта Particle от этого не пострадает. class ParticleSwarm будет подстраиваться под Particle, а не наоборот. На то он и ООП, что бы создавать самостоятельные объекты и налаживать взаимодействие между ними.
1
|
|||||||
|
|
||
| 10.03.2014, 21:22 | ||
|
Добавлено через 1 минуту Не по теме: долго пишу :umnik:
0
|
||
| 10.03.2014, 21:22 | |
|
Помогаю со студенческими работами здесь
8
Найти суммарный импульс частиц и значение суммарных моментов импульса частиц относительно двух точек. Создать анимацию движения частиц друг относительно друга
Стая, рой и.т.п Закрытие 2-рой Формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|