Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (17)

Лучшие ответы пользователя

Все ответы (12)
  • Собираюсь учить С++, но какими знаниями надо обладать?

    @d0lph1n
    Почему-то в последнее время люди одержимы языками программирования, возносят их в абсолют, делают из них манну небесную, эдакую сакральную мудрость, особенно если речь заходит о C или C++. Для того, чтобы научиться программировать, не нужно знать ничего. Поэтому дерзайте - если Вы смогли осилить физику, осилить такую ерунду, как язык программирования, Вам труда не составит. :)

    UPD. Я, кстати, рекомендую Вам прочесть следующие книги и в следующей последовательности:
    1. "Доусон Майкл - C++ через программирование игр". Там, конечно же, не рассказывается, как в одно лицо создать "Кваку", но зато полно красивых и содержательных абстракций, которые не только упростят понимание, но и помогут по-настоящему полюбить язык.
    2. А после Доусона возьмите "Солтер - C++ для профессионалов". Именно после Доусона. Очень хорошая книга в хорошем переводе.

    После этих двух прочтите (погуглите) о современных стандартах: C++11, C++14, C++17. И все - Вы "сипипишник".
    Ответ написан
    Комментировать
  • Знаете ли вы ещё подобные проекты?

    @d0lph1n
    Здравствуйте.

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

    А генетических алгоритмов много. Мне, к примеру, на университетских курсах повезло познакомиться только с тремя, и описанное мной ниже - это т.н. классический ГА:
    • вначале берется случайный набор чисел (популяция особей)
    • из контекста задачи выбирается функция проверки качества (фитнесс-функция, ее-то мы и оптимизируем)
    • числа "спариваются" с определенной вероятностью, часто в районе 0,7 (кроссинговером называется: можно, например, местами поменять старшие и младшие двоичные разряды),
    • появляются и мутируют "дети" с небольшой вероятностью (можно инвертировать один бит, например)
    • при помощи фитнесс-функции собранные вместе предки и потомки ранжируются (чем выше/ниже показатель фитнесс-функции, тем лучше/хуже или хуже/лучше особь)
    • по результатам ранжирования худшие особи отбрасываются

    Как видно, в основу положены базовые биологические эволюционные механизмы. Они применяются для задачи оптимизации, но не симуляции.

    Т.е. возможно, что автор ролика создал параметризуемую симуляцию на основе клеточных автоматов, и эти параметры он оптимизировал при помощи ГА. Задача не столько математическая или техническая, сколько "креативная". А это значит, что Вам, вероятно, будет интереснее разработать самому какой-нибудь комбайн на стыке ГА и клеточных алгоритмов, чем копаться в чужом, возможно, малопонятном коде.
    Ответ написан
    Комментировать
  • Как запустить exe ве Qt Creator??

    @d0lph1n
    blog.harrix.org/article/1015

    Хорошая подробная и, что главное, рабочая инструкция.
    Ответ написан
    Комментировать
  • С чего начать изучение C++, если есть опыт программирования на других языках?

    @d0lph1n
    Предлагаю такой марафон:

    1. Доусон Майкл - Изучаем C++ через программирование игр.
    Небольшая книга, полна красивых манипуляций с CPP-классами, разобраны некоторые приемы ООП, и все снабжено настолько показательными и красивыми примерами, что остается только снять шляпу.

    2. После этого рекомендую взять Солтера: "Солтер - C++ для профессионалов".
    Книга очень полезная в качестве самоучителя при имеющемся наборе знаний, а также в качестве справочника. Довольно большая, на 900 страниц, но после Доусона некоторые главы Вы будете пролистывать по диагонали, так что много времени (даже если читать от корки до корки) это не займет.

    3. Однако книга Солтера не переиздавалась с 2006 года. Она осталась актуальной, но перестала быть полной, поэтому прочтите тонкости и фишки новых стандартов: c++11, c++14 и можете замахнуться на c++17, если останется время и будет необходимость. Специальную книгу для этого искать необязательно - просто погуглите.

    4. Для полноты картины прихватите "Гамма, Хелм... - Приемы объектно-ориентированного программирования. Паттерны проектирования". Книга концептульных идей про то, как организовывать структуру и взаимодействие классов. Знания эти применимы к любому объектно-ориентированному языку, но в ней примеры разбираются именно на C++, что очень удобно. Уж не знаю, прочтете ли Вы ее всю, сразу или нет, но держать под рукой не помешает.

    И вот Вам дополнительная ссылка на шпаргалку по паттернам, чтобы было проще ориентироваться в книге.

    5. Если Вам понадобится строить интерфейсы, возьмите книгу по библиотеке Qt "Шлее - Qt 4.8". По Qt есть еще книга товарищей Бланшет и Саммерфилд, но мне она понравилась меньше.

    Пункты 1,2,3 - рекомендуемые. Пункт 4 - рекомендуемый в долгосрочной перспективе. Пункт 5 - популярный (в т.ч. среди работодателей).

    6. Керниган, Ритчи - язык программирования C. Формально язык C++ - это надмножество языка C с полной обратной совместимостью. Книга очень короткая и очень простая. Прочтите, чтобы получить полную картину.
    Ответ написан
    1 комментарий
  • Как конвертировать временой ряд в мультиграф?

    @d0lph1n
    Похоже, имеется в виду следующее.

    Предположим, у нас имеется временной ряд, где на шкале времени отложены значения [10 20 30 40 50].

    Представить временной ряд в виде мультиграфа где из каждой точки временного ряда можно перейти в каждую набором определенных приростов.

    Т.е. сформировать полносвязный граф, в котором из вершины 10 можно попасть в 20, 30, 40, 50 - в каждую вершину за один переход по дуге, каждая пара вершин связана дугой. Аналогично для вершин 20, 30, 40 и 50.

    Плюс, каждой дуге будет присвоено какое-либо весовое значение.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (9)