Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

CradleA
Статус: Профессионал
Рейтинг: 98
∙ повысить рейтинг »
Megaloman
Статус: Академик
Рейтинг: 60
∙ повысить рейтинг »
Роман Селиверстов
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ Алгоритмы и теория программирования

Номер выпуска:196
Дата выхода:02.08.2016, 16:21
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:19 / 8
Вопросов / ответов:3 / 6

Консультация # 36683: здравствуйте не скажете ли вы с помошью какой программы создаются игры для пк я не имею в ввиду крутые заранее спасибо ...
Консультация # 128721: Здравствуйте, Уважаемые Эксперты! Помогите решить задачу: Вычислить верхнюю и нижнюю границу сложности алгоритма(алгоритм находит столбец матрицы а с минимальным произведением элементов среди тех столбцов матрицы, значения всех элементов которых меньше числа 10): min_j:=0; for j:=1 to m do begin below_10:...
Консультация # 92695: Здравствуйте уважаемые эксперты. Не знаю куда адресовать этот вопрос и по этому пишу вам. Столкнулся с проблемой, т.е. нужно выбрать язык и компилятор, OS не имеет значения, лиш бы код программы выполнялся максимально быстро. Программа будет много считать, т.е. циклы и математические операторы, операторы сравнения должны выполнялся макс...

Консультация # 36683:

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

Дата отправки: 03.03.2006, 21:47
Вопрос задал: Simon simon simon
Всего ответов: 3
Страница онлайн-консультации »


Консультирует romodos:

Здравствуйте, Simon simon simon!
Ну вы и задали вопрос. Если вы его задаете, то вам уж точно не суждено создавать "крутые" игры. Игры, крутые и некрутые, создаются на языке программирования. Используется при этом труд не только программистов, но и художников, редакторов и т.д. Вас интересует какая стадия? Программирования.
Дык языков полно - C++, Delphi, Basic и т.д. Чаще всего, конечно, пишут на с++ (Microsoft Visual C++), используя технологии DirectX. Вроде бы есть еще такая прога DarkBasic, на ней тоже мона писать игры. В одиночку игру не создать. Насчет некрутых игр. Есть GameMaker - для создания 2D Игр. Всем известный Pacman мона на нем писать.

Консультировал: romodos
Дата отправки: 04.03.2006, 07:13
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Gluck3D:

Здравствуйте, Simon simon simon!

Для создания простых игр подойдут: The Games Factory
The PIE 3D Game Creation System
3D RAD
Milk Shape 3D
Game Maker
По моему самая лучшая программа для создания простых 2D и 3D Игр это Dark Basic.
Если вы хотите делать простые 2D игры то возможно вам подойдет Флэш.

Консультировал: Gluck3D
Дата отправки: 04.03.2006, 09:11
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует AlexanderZh:

Здравствуйте, Simon simon simon!
Копай в сторону DarkBasic и ему подобных (Blitz3D, GLScene, 3DGameStudio, Game Maker)

Консультировал: AlexanderZh
Дата отправки: 04.03.2006, 17:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 128721:

Здравствуйте, Уважаемые Эксперты!
Помогите решить задачу:

Вычислить верхнюю и нижнюю границу сложности алгоритма(алгоритм находит
столбец матрицы а с минимальным произведением элементов среди тех столбцов
матрицы, значения всех элементов которых меньше числа 10):

min_j:=0;
for j:=1 to m do
begin
below_10:=true;
p:=1;
for i:=1 to n do
begin
p:=p*a[i, j];
if a[ i,j ]>=10 then below_10:=false;
end;
if below_10 then
begin
if min_j=0 then
begin
min_p:=p;
min_j:=j;
end
else
if p<min_p then
begin
min_p:=p;
min_j:=j;
end;
end;
end;

Дата отправки: 23.03.2008, 17:35
Вопрос задал: Pospelov Eugenio Andreevich
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Errandir:

Здравствуйте, Eugenio Andreevich!

В вашем случае F(m,n) = Θ(mn) ∝ Θ(n²) //Что такое «Θ()», я думаю вы прочитали в ссылке предыдущего ответа.

Как же это находится? Мы отбрасываем всё кроме циклов и условий (естественно нетривиальных, у которых исход не определён). И, в самом простом случае, чтобы найти верхнюю границу, считаем, что программа пойдёт по самым сложным веткам условий, а нижнюю — по самым простым. Так как у нас циклы находятся вне условий и цикл вложен в цикл, задача сводится к перемножению количества итераций в каждом цикле. Различные параметры (такие как m и n) можно сразу приравнять (если они друг от друга не зависят), что будет линейным размером объёма в многомерном пространстве параметров.

Удачи.

Консультировал: Errandir
Дата отправки: 24.03.2008, 00:00
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 92695:

Здравствуйте уважаемые эксперты.
Не знаю куда адресовать этот вопрос и по этому пишу вам.
Столкнулся с проблемой, т.е. нужно выбрать язык и компилятор, OS не имеет значения, лиш бы код программы выполнялся максимально быстро.
Программа будет много считать, т.е. циклы и математические операторы, операторы сравнения должны выполнялся максимально быстро.
А может быть скорость выполнения одного и того же алгоритма (к примеру написанного на С++) в разных OS (например Win, *nix, *BSD) тоже отличается. Где и в какую сторону?

Заранее благодарен.

Дата отправки: 24.06.2007, 14:28
Вопрос задал: Yarking
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Gromoff Oleg:

Здравствуйте, Yarking!
Код программы будет выполняться маскимально быстро, если критичные участки кода Вы напишите на ассемблере. Правда, если у Вас много вычислений с плавающей точкой, придется писать для FPU. Неплохой вариант писать на C/C++, но нельзя сказать, что этот язык "заточен" под математику.

Насчет скорости выполнения одного и того же алгоритма под разными ОС склоняюсь в сторону того, что она если и отличается, то весьма незначительно. Если Ваш код будет максимально чистым, да еще и с ассемблерными вставками, выполняться он будет максимально приближенно по скорости в разных ОС. Более того, есть же кроссплатформенные компиляторы - GNU GCC, например, всяческие варианты ассемблеров.

Возможно, Ваши вычисления также имеет смысл разделить на несколько потоков или нитей (в терминологии Windows).

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

Консультировал: Gromoff Oleg
Дата отправки: 24.06.2007, 15:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует NiGHT:

Здравствуйте, Yarking!

Хотел высказать свое мнение. Ассемблер это хорошо, но далеко не всё.

Если говорить про максимальную быстроту, то ассемблер это пожалуй самое быстрое, но для вычислений единого алгоритма можно использовать однозадачные ОС, т.к. на них все ресурсы отдаются под задачу. Естественно если Вы работаете в рамках 1 программы. Если алгоритм расчитан на мультизадачность или требует спец ПО, тогда уже идем в многозадачные ОС. Выбрать одну из ОС трудно, дело в том, что тут дело скорее не в самой ОС, сколько в ее настройках. Надо точно сконфигурировать приоритеты процессов и избавится от ненужных. Пожалуй сделать это лучше в nix системах, т.к. там можно перекомпелировать ядро, но при должной настройке Win тоже подойдет.

Кроме того выбор компилятора дело интересное и ассемблер тут лидер т.к. там преобразование кода в машинный идет 1 к 1. Это максимум скорости, но это и максимум кода. Для простой счетной задачи Вы рискуете получить программу в десятки тысяч строк кода!, что не есть хорошо. Это будет быстро, но Вам это писать и отлаживать самому. Поэтому тут придется скорее отойти в пользу более высокоуровневого языка. И тут опять же будет выбор. Есть язык близкий к ассемблеру это C++ или более продвинутый в вычистлительном плане Фортран? Первый более близок к машине, например если Вам надо будет "вливаться" в ОС и взаимодействовать с железом, но в вычислительных задачах Фортран лучше и проблем будет меньше при тех же скоростях, его алгоритмы вычислений оттачивались годами, а там Вам их самому придумывать. (Пример, я недавно писал вычислителную задачу. Выбрал Visula С т.к. надо было использовать OpenGL. Но считать на нем это жуть, возникла банальная проблема: С++ не отслеживает перепо лнение типа, вот сичитаю, получаю "как бы корректный" результат, а на всамом деле там уже число на на несколько порядков выше должно быть! Заморочка, а тот же Паскаль такое отслеживает).

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

Интересный пример: Встречал одного человека, который занимался счетными задачами по физике. Он писал алгоритм на Паскале и отлаживал. Но паскаль "тормоз" в плане счета. Поэтому он перебивал готовый алгоритм на С++. Это довольно простое занятие, но опять же на выходе не самое лучшее, хоть и быстрее. Поэтому потом он компелировал и открывал программу дизасемблером и правил некоторые критичные места. Тут и получалась оптимальная программа. Может это Вам подойдет.

Я тут файлик прилагаю, это интересная статья по теме.

Кроме того если задача чисто счетная, то можно обратить внимание на теорию паралельных вычислений (сразу на нескольких ПК). Тоже большой прирост скорости можно получить. (см http://parallel.ru/)

Консультировал: NiGHT
Дата отправки: 25.06.2007, 23:11
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное