Ответ на пост «Гуманитарий пытается влезть в программирование. Day two»

Часто вижу здесь посты, о попытках уйти в программисты с нуля. И хочу для данной аудитории, привести пример, так сказать на пальцах, чем отличается обучение по книжкам типа "Программирование распределенных нейросетей на машинных кодах за 10 дней" и обучением в институте. Ну и в целом, это помогает оценить свои возможности, и понять, а оно вам вообще надо?


Попробуйте написать алгоритм, для классической задачи, которую решают первокурсники. Только по чесноку, без гугления.


Есть n количество работников и n количество задач. Каждый из работников, в силу своей квалификации, может выполнить каждую задачу за разное количество времени. Нужно посчитать, за какое минимальное время, работники справятся с этими задачами, при условии, что каждому работнику будет назначена задача с которой он справляется быстрее всего.


Ниже картинка для наглядности. Три работника, три задачи. Т.е. первый работник может выполнить первую задачу за 3 часа, вторую за 5, третью за 7. Ну и т.д.


Для чистоты эксперимента, дальше картинки читайте после выполнения задания.

Ответ на пост «Гуманитарий пытается влезть в программирование. Day two» Программирование, Python, Новичок, Мат, Ответ на пост

После того как решите, сравните эффективность вашего решения и классических оптимальных алгоритмов решения "задачи о назначениях". И представьте, насколько продуктивнее была бы ваша работа, если бы вы изначально имели представление о классических задачах в программировании, про которые не упоминается в большинстве книг по программированию на каком либо языке.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Супергуманитарий врывается. Без гугла. Думал минут 5.

Складываю числа всех часов по каждой задаче.

Задача 1- 8, 2- 16, 3- 16. Это значит, что первая задача выполняется быстрее других в любом случае, поэтому можно там взять того работника, что может выполнять ее долго и оставить быстроработающих на времязатратные задачи и сэкономить на них. Во второй и третьей берем, что по быстрее. Получается первый (3 часа)- третий (3 часа) - второй (четыре часа). Итого 10 часов.

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


А теперь тебе вопрос, автор.

Могу ли я называть это алгоритмом и насколько я дебил? Или я что-то умное написал?

раскрыть ветку (2)
Автор поста оценил этот комментарий

Оооо! А может от максимального возможного количества часов отнять минимальное возможное и получим потенциально возможную экономию времени.

Задача 1 - 1 час, 2 - 5, 3- 3. Получаем, что чем больше число, тем приоритетней задача, вторая- самаая приоритетная, берем самого быстрого- второго. Третья вторая самая приоритетная, а второй рабочий занят второй задачей, берем второго самого быстрого- третьего. Ну и по аналогии с первой.


Я умный? Или все как обычно?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Какой-нибудь программист-сан что может сказать о моих умениях владеть функцией ВПР в экселе для решения этой задачи?

https://gofile.io/?c=MH85JR


Кстати мне понравилось. Давай еще задачи! А какой ответ правильный?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку