Форум программистов, компьютерный форум, киберфорум
Обо всем!
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 24.10.2015
Сообщений: 27

Про программирование! НА ЛОГИКУ! Язык не важен

28.06.2018, 15:11. Показов 843. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Code
1
2
3
for  (j=0;  j<K; j=j+1)
 
     run_dlx();
K = 10 TIME = 6.534 sec
K = 20 TIME = 41.32 sec
K = 25 TIME =18m 41 sec = 1 121 sec
K = 30 TIME = 9 h 54 m = 35 640 sec

Вопрос. Почему функция run_dlx() затрачивает гораздо больше времени на своё выполнение, если вызывается чаще. ( прогрессия увеличиваеться заметно с 20) ? (Функция не принимает параметров). Приводите все примеры, до которых додумались) буду благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2018, 15:11
Ответы с готовыми решениями:

Если количественный результат оценки не важен, а важен только итог сравнения - то какую шкалу лучше применить
Добрый день! Интересует такой вопрос. Если количественный результат оценки не принципиален, а важен только итог сравнения - то какую...

Хочу изучать программирование какой язык программирование выбрать ?
Хочу изучать программирование какой язык (С, С++, С# или Delphi) программирование выбрать ? Цель создание : 1.транслит кирилл на...

Про логику движения по окружностям
Вот часто смотрю на графические примеры с вращением или движением по окружности или дугам, и не понимаю, как пишут эту всю логику по...

14
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.06.2018, 16:14
Потому что у алгоритма экспонентная сложность.
0
Заблокирован
29.06.2018, 17:34
Цитата Сообщение от kolorotur Посмотреть сообщение
экспонентная сложность
Такой вроде как нет
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
29.06.2018, 18:23
student8102, ну поскольку исходников функции нет, остается только гадать.
Как вариант, функция изменяет глобальное состояние, которое влияет на скорость последующих выполнений.
1
26 / 23 / 12
Регистрация: 25.06.2018
Сообщений: 91
29.06.2018, 18:58
Цитата Сообщение от kolorotur Посмотреть сообщение
Как вариант, функция изменяет глобальное состояние, которое влияет на скорость последующих выполнений.
Скорее всего других вариантов нет
1
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
30.06.2018, 01:36
Цитата Сообщение от Andresgoro Посмотреть сообщение
Почему функция run_dlx() затрачивает гораздо больше времени на своё выполнение, если вызывается чаще
а почему мы должны верить на слово этому утверждению? ты сделал бездоказательный вброс. для чего?
я не знаю, что за язык в образце кода (если это реальный язык), но можно предположить, что это цикл. а это не соответствует словам
Цитата Сообщение от Andresgoro Посмотреть сообщение
функция run_dlx() затрачивает гораздо больше времени на своё выполнение, если вызывается чаще
каким образом она вызывается чаще? цикл - это многократное последовательное выполнение одного куска кода, частота вызова здесь ни к месту. на частоту может влиять таймер.
и озвученная логика здесь тоже ни к селу ни к городу.

ЧТОБЫ СДЕЛАТЬ УМНЫЙ ВБРОС, НУЖНО ПОСТАРАТЬСЯ
0
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
30.06.2018, 15:40
Зависит от того как эта макро-функция переводится ассемблером после компиляции.
Функция вообще может оказаться реализованной через 10 переключающихся одну в другую dll.
Наверно через систему, наращивается, барахлит - и видимо сложно перекликается в ней.
Т.е видимо обращается к системе и многосложно. А паррплельно эти же dll - кто-то использует, по принципу многозадачности.

Добавлено через 4 минуты
Такое и подобное, оно в виндоус программах развито сильно.
А в Dos - может очень слабо присутствовать в масштабах долясекунд, и вероятно на провах эмуляции Dos программы - Windows системой.
0
Эксперт .NET
 Аватар для Usaga
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
01.07.2018, 08:25
Цитата Сообщение от Ixmil Посмотреть сообщение
Зависит от того как эта макро-функция переводится ассемблером после компиляции.
Нет. Всё зависит от того, что данная функция делает и только.
1
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
05.07.2018, 17:57
Я кроме вашего "в натуре" - о ваших знаниях никогда не слышал.
От реализации асма - она может зависеть. Важно какую именно область адресов RAM-а она использует.
Как именно использует регистры проца. Важно какая степень уневерсальности (логико-вместимости) этой команды. Т.е. какие именно данные и типы данных она может прокрутить в потенциале.
Если она уневерсальная- значит и крутится она медленнее.

Добавлено через 2 минуты
Если она использует популярную область адресов. То эта область может использоваться паралельно другими процессами многозадачной ОС.
0
Эксперт .NET
 Аватар для Usaga
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
05.07.2018, 18:19
Цитата Сообщение от Ixmil Посмотреть сообщение
Я кроме вашего "в натуре" - о ваших знаниях никогда не слышал.
А я и не распространялся)

От машинного кода в который функция компилируется, её производительность зависит сильно в меньшей степени, чем от алгоритма в этой функции реализованного.

Компилятор может её код сколь угодно эффективно и оптимально перенести в процессорные инструкции, но если там какой-нибудь BOGO Sort, то эта эффективность ничего не будет значить.

Добавлено через 1 минуту
Цитата Сообщение от Ixmil Посмотреть сообщение
Если она использует популярную область адресов. То эта область может использоваться паралельно другими процессами многозадачной ОС.
Это про false sharing или просто фигня спорота?
0
Нарушитель
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
05.07.2018, 18:35
Как связан приведенный псевдокод с выводом:
K = 10 TIME = 6.534 sec
K = 20 TIME = 41.32 sec
K = 25 TIME =18m 41 sec = 1 121 sec
K = 30 TIME = 9 h 54 m = 35 640 sec

Приведенная функция влияет на К?
Почему тестов только 4?
Как вы вычислили TIME?
Функция влияет на системное время?
Ваша функция выполняется в одном потоке?
Система многозадачная, псевдомногозадачная?
Какая вообще логика в вашем вопросе?
0
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
05.07.2018, 20:06
Функция вероятнее всего была однопоточная.
"К" - означает русский предлог "к". Т.е. ко стольки-то.
TIME - означает ее выполнение по времени, затраченное время на выполнение функции.
Цифра после "К" - количество произведенных холостых функций.
Количество строк приведено для обозначения понимания загадочной прогрессии зависания.
Т.к. задержки зависания возрастают прогрессивно.

Добавлено через 7 минут
Также сдесь "К" - может иметь и второй смысл: "Количество" (ammo).
Для данного контекста оба смысла одинаково-октуально тождественны.
0
Заблокирован
05.07.2018, 23:46
Цитата Сообщение от Andresgoro Посмотреть сообщение
for (j=0; j<K; j=j+1)
run_dlx();
Очень глупый код, но в некоторой степени поучительный для дураков. Здесь не надо мозгов Эйнштейна, что бы понять это.
Каждая последующая итерация будет вызывать функцию, которая ничего не выполняя вызывает следующую итерацию по циклу. Это может происходить до бесконечности, если, конечно переменная K не ограничена. В любом случае это начинает занимать оперативную память. И в итоге! А, что у нас в итоге? В итоге начнутся тормоза. Ну, и что вы хотели? Глупый код и глупый вопрос. Тупим дальше?
0
Нарушитель
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
06.07.2018, 01:38
oplachko84, Сам по себе вопрос не глупый.
Может вопрос не верно задан, или сформулирован неправильно.
То что run_dlx(); ничего не принимает и не возвращает совсем ничего не значит.
Может она иметь доступ к внешним переменным, к глобальным переменным? Где описана сама функция?
Мы этого не знаем.
Для решения задачи у нас не достаточно информации.
Andresgoro, Уточните вопрос, если хотите получить ответ.
Возможно функция за счет оптимизации обращается к кешу процессора, тогда она должна будет выполняться быстрее.
При нехватке ресурсов функция может работать с более медленной памятью, тогда она будет затрачивать больше времени.
Но это только предположения. Вы же не уточнили и не ответили нам на вопросы.

Добавлено через 38 минут
Логические рассуждения:
1. Функция не находится в каком-то сферическом вакууме.
Даже если вы просто написали функцию на бумаге- она уже имеет массу и движется, вращается вместе с Землей вокруг солнца.
Более того она летит по воздуху по проводам и попадает на монитор компьютера.
И это только написанная на бумаге функция.
В терминах программирования, при любом языке программирования, функция выполняется в какой-то среде. То есть это какая-то система, среда исполнения и тд.
2. Она может потреблять какие-то ресурсы.
3. К ней обращаются какие-то ресурсы. Например система спрашивает функцию - ты еще жива функция? Отдай ресурсы. Функцию может опрашивать вирус.
То есть мы можем предположить всё что угодно о такой гипотетической функции и влияет ли она на время.
0
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
06.07.2018, 16:45
Если в паскале задать следующее, то оно будет работать с той же прогрессией зависания и замедления работы цикла:

Pascal
1
2
3
4
5
6
7
Var
x: integer;
s: string;
While x<>3456 do
begin
s:= s+'c';
end;
Массив s - будет все время утяжелятся. И его прокрутка будет занимать все больше времени.

Добавлено через 3 минуты
Что до функционирования пустого цикла, то правильность его функционирования может подвергаться сомнению.

Добавлено через 9 минут
Забыл добавить что код для длинных строк под Delphi. И в цикл надо вставить строку отсчета: x:= x+1;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2018, 16:45
Помогаю со студенческими работами здесь

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

Язык С,программирование
Помогите сделать сортировку подсчетом,пожалуйста 7. Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить...

программирование циклических. язык С (СИ)
как сделать программу цыклических выч. процессов для функ-ции...(задание во вложении 88) и сделать доп задание ( во вложении 87 = сумма...

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

Задача на динамическое программирование. Язык С
Условие Алхимик Петя изобрел философский камень, с использованием которого можно проводить некоторое множество алхимических реакций по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru