Эх, никто математикой не поделился. Ищу дальше. Спасибо за комментарии. ВЫбрал ваш ответ, как решение, т.к. пока этот способо, хоть и тормознутый, но хотя бы решает поставленную задачу.
Скажите, вы условие задачи читали? ВЫ точно его читали? Выше решение работает только для случая m = n. В случае указанного мною условия задачи сложность m*k не будет. Модификацию вашего алгоритма я пробовал, однако она дает крайне неудовлетворитльный результат по быстродействию, причем при линейном росте n нелинейная скорость роста времени поиска решений.
Каким образом при данных условиях задачи у вас всего-то m*k? Эта сложность просто великолепна для данной задачи, но как ее добится? На ум приходит разный теорвер и статистические методы, но блин у меня они все равно вырождались к прямому перебору, что при данных условиях задачи вырожадется в квадратичную сложность (зависит от распределения используемого для выборки вопросов в тесты).
По-видимому, я таки неправильно понял ваш прошлый ответ. Вы не могли бы его прояснить подробнее?
Я выполнил полный перебор именно так, как вы предлагаете в этом ответе ( toster.ru/q/54780#answer_199974 ). Логичным решением было бы масштабировать каким-то образом для одновременного анализа нескольких вопросов одновременно, но вот элегантного решения я не нашел, посему и обратился с общественности.
>>Если вы захотите это проверить, вам придется написать некую модель, дабы не тратить производительность на работу с реальным тестом.
Реального теста нет, как я и говорил, вопрос больше теоретический, чем практический. Я просто генерирую пару вопрос-ответ, где номер вопроса - индекс линейного массива, а номер правильного ответа, значение по этому индексу. Т.е. просадки производительности нет, т.к. для проверки догадок используется линейный массив небольшой размерности (до 1000 элементов), что дает нам постоянное время при доступе к произвольному элементу.
Спасибо большое за ответ. Задача как раз более теоретическая. Сразу понятно, что аналитического решения у нее нет и необходимо использовать какой-то итеративный процесс, интерес в том, чтобы минимизировать время, требующееся на итеративный процесс.
Ваш вариант я пробовал (назвал его полным перебором). На маленьких тестовых сетах (до 100 вопросов, 2 варианта ответа в вопросе, в одном тесте до 20 вопросов) он показал себя неплохо. Однако, в случае увеличения количества вопросов (1000 вопросов, 8 вариантов у каждого вопроса, 20 вопросов в одном тесте), время полного перебора становится неимоверно большим (считало больше 4 часов и не досчитало, прекратил симуляцию, т.к. надоело ждать).
В любом случае, если не будет вариантов решения более оптимальными алгоритмами, приму ваш ответ, как правильный, т.к. он совпадает с моим решением.
Пользователь ixSci посоветовал наиболее близкое к тому, что мне требовалось — Qt. К сожалению, конкретно мне оно не подходит, однако, может кому и пригодится. Поэтому, его ответ и принят, как решение.
Я выбирал из доступных инструментов. Базовый класс и определенную структурную иерархию я все равно буду использовать, т.к. это облегчит многие моменты для меня, а шаблоны и слабый оверхед С++ обеспечат достаточную производительность.
В то же время, мне нравятся философия Obejctive-C, Foundation и рантайма, однако они отсутствуют на целевых платформах. На С++ возможностей рантайма у меня не будет, да и не нужны они мне настолько, а вот остальные плюшки иметь хотелось бы.
У меня есть выбор, либо самому писать с нуля, либо допилить под свои цели готовое решение. В Cocos2d-x слишком многого не хватает, с нуля не хотелось бы, т.к. огромное количество времени уйдет и в первом и во втором случае на то, что к основной цели проекта не относится, поэтому и решил попросить совета у сообщества, т.к. google не помог.
Вы знаете, я даже не знаю, что вам на это ответить. Наверное, потому что реализация с базовым объектом с данными концептами видится оптимальной для поставленных задач, неся значительное удобство при незначительном оверхеде?
Однако, вы так и не ответили на вопрос в треде. Не потрудитесь таки дать совет?
Извините, можете ткнуть в то, что сможет скомпилировать С++ компилятор без Objective-C? Пока нашел только это: searchco.de/codesearch/raw/20212506, но это определенно не то, что нужно в силу синтаксиса обжектива, а меня интересует именно реализация на С++ для работы в С++.
К сожалению, не подходит, т.к. не сохраняет все концепты + тянет за собой здоровую библиотеку. ТЕм не менее, спасибо за наводку. Хочется чего-нибудь в стиле CCObject, т.е. легковесного и с минимальным набором зависимостей, но реализующего полный набор концептов.
Уточните вопрос.
Что обозначает: «выгружать storyboard из памяти полностью для переключения в отдельный view controller»
Что вам мешает это сделать при использовании сторибоарда? Почему нельзя просто скормить контроллер вашему классу — контейнеру контроллеров, предварительно его инстанциировав либо через сториборд, либо через ниб?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.