Re[15]: чем заменить задачу по развороту списка
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.10.20 09:12
Оценка:
Здравствуйте, Тёмчик, Вы писали:

I>>Алгебра алгеброй, но если, для примера, 100% времени только и делаешь, что поворачиваешь картинки, то надо оптимизировать вусмерть. И тогда матричное умножение мягко говоря не лучший вариант.


Тё>Да блин ну же! Формула синусов с косинусами и есть матричное произведение 2x2 матрицы вращения на координату!

Тё>https://socratic.org/questions/if-you-multiply-a-2x2-matrix-and-a-2x1-matrix-the-product-is-a-2x1-matrix

Спасибо, капитан Очевидность! Ты реально не в курсе, что это можно примерно раз 5-10 сделать быстрее, если заменить целочисленными инплейс трансформациями?
Re[15]: чем заменить задачу по развороту списка
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.10.20 09:26
Оценка: -1
Здравствуйте, Nuzhny, Вы писали:

I>>На такие вещи даёт ответ профайлер. Обсуждать "быстрее или нет" без внятных требований к производительность это по моему редкий зашквар.


N>Мне не нужен профайлер, чтобы понять что десятки миллионов лишних операций на картинку — это плохо.


То есть, если функция ни разу не является узким местом, ты всё равно начнешь оптимизации, просто из чувства прекрасного?
Re[16]: чем заменить задачу по развороту списка
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 07.10.20 09:37
Оценка: -2
Здравствуйте, Ikemefula, Вы писали:

I>То есть, если функция ни разу не является узким местом, ты всё равно начнешь оптимизации, просто из чувства прекрасного?


Ты зануда. Мы сейчас говорим о задаче на собеседовании. Нет никаких реальных проектов.
Если бы они были, я бы взял готовую библиотеку, в которой наверняка есть реализация поворота с оптимизацией под разные архитектуры процессора, а также реализация на GPU.
Если бы библиотек не было, я бы сделал обобщённую функцию transform для преобразования изображения и передавал в неё функцию вычисления новых координат параметром шаблона. В таком случае не было бы никакой потери общности и никакого оверхеда. Хочешь — передай аффинное преобразование, хочешь перспективное (почему, кстати, ты его не предлагаешь, почему никто его не предлагает? Это же та же матрица, но с большими возможностями), хочешь поворот или просто сдвиг. Нет необходимости совершать преждевременную пессимизацию своего решения. Почему ты вообще думаешь, что матрица 3х3 решит все проблемы? Как ты с помощью неё исправишь перспективные искажения или дисторсию? А?
Re[13]: чем заменить задачу по развороту списка
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.20 09:41
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Pzz>>Но это не один разворот, а три. И в результате получается циклический сдвиг. Не в том смысле, что кто-то N раз сдвигает массив на один шаг, а в том, что результат эквиавалентен циклическому сдвигу.


Тё>2*O(N), элегантное решение за 5 минут. Или исписанная доска и нерабочее решение через 30 минут. Или нечитабельная портянка в функции на экран. Константой в большинстве случаев можно пренебречь.


Я не понимаю, ты с чем споришь?

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

Ты правда этого не видишь даже после 2-х попыток объяснения?
Re[16]: чем заменить задачу по развороту списка
От: Тёмчик Австралия жж
Дата: 07.10.20 10:06
Оценка:
Здравствуйте, Ikemefula, Вы писали:

Тё>>https://socratic.org/questions/if-you-multiply-a-2x2-matrix-and-a-2x1-matrix-the-product-is-a-2x1-matrix


I>Спасибо, капитан Очевидность! Ты реально не в курсе, что это можно примерно раз 5-10 сделать быстрее, если заменить целочисленными инплейс трансформациями?


Приведи пример "целочисленными инплейс трансформациями". Вот я думаю, что вызвать специализированную матричную функцию из библиотеки может оказаться быстрее, чем вручную формула синусов-косинусов.
Re[14]: чем заменить задачу по развороту списка
От: Тёмчик Австралия жж
Дата: 07.10.20 10:12
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>Но это не один разворот, а три.


Pzz>Я не понимаю, ты с чем споришь?

С утверждением про 3 * O(n)...
Re[15]: чем заменить задачу по развороту списка
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.20 10:40
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Pzz>>Я не понимаю, ты с чем споришь?

Тё>С утверждением про 3 * O(n)...

Ааа. Но я не делал такого утверждения. Я утверждал лишь, что потребуются 3 действия:

[01][234] — начальное состояние
[10][234] — 1: развернули цепочку "01"
[10][432] — 2: развернули цепочку "234"
[234][01] — 3: развернили все вместе
Re[17]: чем заменить задачу по развороту списка
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.10.20 11:47
Оценка:
Здравствуйте, Тёмчик, Вы писали:

I>>Спасибо, капитан Очевидность! Ты реально не в курсе, что это можно примерно раз 5-10 сделать быстрее, если заменить целочисленными инплейс трансформациями?


Тё>Приведи пример "целочисленными инплейс трансформациями". Вот я думаю, что вызвать специализированную матричную функцию из библиотеки может оказаться быстрее, чем вручную формула синусов-косинусов.


Специализированая библиотека — это ответ на все случаи жизни.

Вопрос в том, что там унутре — честное матричное умножение с оптимизациями, или же частные случаи подогнанные конкретно под твой вариант. Понятно, что основа будет из тех самых преобразований. Вопрос только в том, как именно ты будешь вычислять конкретную координату — матричным способом или частными случаями. И вот второй вариант поддаётся гораздо более глубоким оптимизациям, так как просто больше сведений о том, что нужно конкретно сейчас.
Re[16]: чем заменить задачу по развороту списка
От: a7d3  
Дата: 07.10.20 16:50
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, a7d3, Вы писали:


I>>>Для чего проводят собеседование?


A>>Для того чтобы людей подбирать?


I>Подбирать по какому принципу?


Собеседование людей — это деятельность, с какой-то однозначной целью.
Вот от этой цели и зависит подход с принципами.
Зачем же всегда и всех одним и тем же образом подбирать?
Re[12]: чем заменить задачу по развороту списка
От: a7d3  
Дата: 07.10.20 16:55
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, a7d3, Вы писали:


A>>Вопрос же не в том можешь или нет. А тех обстоятельствах, в которых тебя вынуждают этим заниматься.

A>>Мне жаловались разные люди, что обстановка на собеседованиях не располагает ни разу, к такого рода занятиям. Грубо говоря пыхтеть на листочке бумаги ручкой, когда рядом восседает откровенно зевающий собеседователь.

Pzz>Ну вообще говоря, собеседующему лучше на некоторое время выйти, показав собеседуемому тропинку к сортиру и к источнику чая с крекерами, или чем там изба богата.


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

A>>Т.е. задачка дерьмо, потому что есть лишь один годный вариант решения, но есть ряд вариантов облажаться при этом. Проверить мышление-рассуждение кандидата задачка не позволяет. Даётся задачка в таких обстоятельствах, что почти наверняка нетренированный человек в чём-нибудь да ошибётся. И в этом ожидании ошибки от кандидата и весь смысл, весь сок давания данной задачи. Чтобы у собеседующего появилась возможность ткнуть кандидата в некую ошибку в некой очень простетской задачке.


Pzz>По таким задачкам видно, склонен ли соискатель проверять, например, корректность входных данных. Хотя эта, наверное, даже и для этой цели слишком проста.


Именно, с какой стороны ни смотришь на такие задачки, а использование их на собеседование оказывается полным идиотизмом.
Re[12]: чем заменить задачу по развороту списка
От: CreatorCray  
Дата: 07.10.20 18:49
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну вообще говоря, собеседующему лучше на некоторое время выйти, показав собеседуемому тропинку к сортиру и к источнику чая с крекерами, или чем там изба богата.

Это говно а не собеседование. Цель собеседования — увидеть может ли собеседуемый соображать. Готовое решение нафиг никому не надо, надо продемонстрировать способность это решение придумать.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[17]: чем заменить задачу по развороту списка
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.10.20 19:01
Оценка:
Здравствуйте, a7d3, Вы писали:

I>>Подбирать по какому принципу?


A>Собеседование людей — это деятельность, с какой-то однозначной целью.

A>Вот от этой цели и зависит подход с принципами.

А можно на примере? Ничего ведь не понятно.
Re[18]: чем заменить задачу по развороту списка
От: a7d3  
Дата: 07.10.20 19:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, a7d3, Вы писали:


I>>>Подбирать по какому принципу?


A>>Собеседование людей — это деятельность, с какой-то однозначной целью.

A>>Вот от этой цели и зависит подход с принципами.

I>А можно на примере? Ничего ведь не понятно.


Ну тебе доверяют людей отбирать через собеседование, а кого именно и куда конкретно? На какую работу в какой проект, на какие задачи и сферу ответственности?
Вопрос риторический, не требует ответа здесь, а лишь наводит на мысль куда думать, чтобы понятно стало.
Re[13]: чем заменить задачу по развороту списка
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.20 20:17
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Это говно а не собеседование. Цель собеседования — увидеть может ли собеседуемый соображать. Готовое решение нафиг никому не надо, надо продемонстрировать способность это решение придумать.


"Придумать" != "придумать, когда у тебя над душой стоят". Второе качество ценно для публичного человека или для продавца подержанных автомобилей, но совершенно не обязательно для инженера.
Re[18]: чем заменить задачу по развороту списка
От: Тёмчик Австралия жж
Дата: 07.10.20 22:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>Спасибо, капитан Очевидность! Ты реально не в курсе, что это можно примерно раз 5-10 сделать быстрее, если заменить целочисленными инплейс трансформациями?


Тё>>Приведи пример "целочисленными инплейс трансформациями". Вот я думаю, что вызвать специализированную матричную функцию из библиотеки может оказаться быстрее, чем вручную формула синусов-косинусов.


I> Специализированая библиотека — это ответ на все случаи жизни.

Это ответ на быстрое умножение матриц.

I>Вопрос в том, что там унутре — честное матричное умножение с оптимизациями, или же частные случаи подогнанные конкретно под твой вариант.

Поворот на произвольный угол (не на n * PI/2)- там не частные случаи, а честное умножение. Которое вручную в лучшем случе не уступит специализированной функции, в худшем- уступит.


I> Понятно, что основа будет из тех самых преобразований. Вопрос только в том, как именно ты будешь вычислять конкретную координату — матричным способом или частными случаями.

А ты собрался сравнивать с Pi/2 и делать 2 реализации?
Re[14]: чем заменить задачу по развороту списка
От: CreatorCray  
Дата: 07.10.20 23:28
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>"Придумать" != "придумать, когда у тебя над душой стоят"

Потому и задачка берётся весьма простая.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[15]: чем заменить задачу по развороту списка
От: a7d3  
Дата: 08.10.20 00:14
Оценка: :))
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, Pzz, Вы писали:


Pzz>>"Придумать" != "придумать, когда у тебя над душой стоят"

CC>Потому и задачка берётся весьма простая.

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

Если человек по собеседованиям ходил лишь когда сам был вчерашним студентом, которых нанимают через отбор «сырых талантов». То ему потом крайне сложно научиться людей собеседовать. Поскольку он понятия не имеет как это можно и нужно делать, в том случае, если не «сырые таланты» ищешь.
Re[13]: чем заменить задачу по развороту списка
От: landerhigh Пират  
Дата: 08.10.20 05:59
Оценка: +1
Здравствуйте, a7d3, Вы писали:


A>не считают нужным всех и вся сразу же допускать до system design interview,


И самое забавное, что сами же интервьюверы во время system design interview жидко обгаживаются, показывая полное непонимание особенностей system, которую они типа хотят design.
www.blinnov.com
Re[19]: чем заменить задачу по развороту списка
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.10.20 07:04
Оценка:
Здравствуйте, a7d3, Вы писали:

I>>А можно на примере? Ничего ведь не понятно.


A>Ну тебе доверяют людей отбирать через собеседование, а кого именно и куда конкретно? На какую работу в какой проект, на какие задачи и сферу ответственности?

A>Вопрос риторический, не требует ответа здесь, а лишь наводит на мысль куда думать, чтобы понятно стало.

Вот у нас есть 10 потенциальных кандидатов на позицию сеньора, node.js, web application, позицию нужно закрыть где то месяца за два.

Каким образом понять, какой должен быть подход в данном случае? Чего тебе не хватает это самый подход продемонстрировать?
Re[20]: чем заменить задачу по развороту списка
От: a7d3  
Дата: 08.10.20 07:40
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, a7d3, Вы писали:


I>>>А можно на примере? Ничего ведь не понятно.


A>>Ну тебе доверяют людей отбирать через собеседование, а кого именно и куда конкретно? На какую работу в какой проект, на какие задачи и сферу ответственности?

A>>Вопрос риторический, не требует ответа здесь, а лишь наводит на мысль куда думать, чтобы понятно стало.

I>Вот у нас есть 10 потенциальных кандидатов на позицию сеньора, node.js, web application, позицию нужно закрыть где то месяца за два.


I>Каким образом понять, какой должен быть подход в данном случае? Чего тебе не хватает это самый подход продемонстрировать?


Бесполезно демонстрировать подобное когда у собеседника нет понимания базовых/элементарных вещей.

1) Рабочей единицей является не отдельно взятый сотрудник, а команда. Человек нанимается в качестве сотрудника на некую роль в конкретную команду.

2) Понятие роли в проекте/команде — это не тоже самое, что понятие квалификации у фрезеровщика или сварщика (пятый-шестой разряд).

3) Если среди кандидатов оставить лишь профессионалов с хорошей квалификацией, годных на роль синьора, то далеко не каждый из них подойдёт в конкретную команду.

Прописные истину тут в том, что люди в проектной работе не являются взаимозаменяемыми болтиками или одинаковыми кирпичами. Да, незаменимых у нас нету, но это и не означает, что все люди одинаковые болтики. Во-вторых, как в компании не бывает двух главбухов или двух техдиров, так и не все люди уживаются в рамках одной команды/проекта по этим же самым причинам, даже если их развести по различным направлениям в одном проекте.

Подбор строится на том, что нет понятия «незакрытая вакансия в компанию» — есть не полностью укомплектованный экипаж в конкретной команде. Только очень убогие компании не знают, что производительность отдельного сотрудника в разы меньше, чем у того же самого сотрудника, но работающего в подходящей команде.

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