Re[5]: кадровики совсем рехнулись
От: Тёмчик Австралия жж
Дата: 21.11.18 06:32
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>>>и любимые Крейтором задачи по сортировки битов

CC>>Шта?

S>вы с Артемом спорили целый топик надо уметь оперировать отдельными битами или нет


Не так. Уметь выставлять биты нужно. Уметь считать биты- задачка на память. Ну креатор с единственно верным решением несогласен- спрашивает это "на поговорить" от избытка креативности наверное.
Re[7]: кадровики совсем рехнулись
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.11.18 06:44
Оценка: 29 (3) +5 -2 :)
Здравствуйте, CodeMonkey, Вы писали:
CM>Сколько таких людей на весь мир наберется, для которых это действительно нужно? Ну допустим, не десяток. Тысяча. Может, даже десяток тысяч. Всё
То есть вас не смущает то, что вы ни MSIL, ни байткод JVM не можете читать даже со словарём?
Это если мы не будем копать седую древность типа того же Форта.
Ну ок. А если бы вас попросили написать вычислитель выражений в инфиксной нотации — что, это было бы как-то легче?
Я вот профильного образования не имею, компиляторы никогда не писал, но даже я знаю, что такое "перевод инфиксной нотации в постфиксную", что такое "стековый вычислитель" и прочие примитивные вещи.
Если в этой вакансии нужно мало-мальски применение алгоритмов — то да, такой вопрос на собеседовании уместен.
И вообще, инженер всегда должен уметь смотреть на один уровень вглубь — то есть, если пишешь на C#, надо понимать, в какой MSIL превращается код. Если пользуешься библиотекой — надо знать, как она устроена внутри.
До самого дна лезть не обязательно — там быстро упрёшься в инженерное применение квантовой механики, а его за полчаса в ютубе не освоишь.
Но вот обычный критерий хорошего инженера — любопытство, которое и приводит к тому, чтобы разобраться — что там "унутре". Если этого любопытства нет — то никаким надрачиванием фреймворков и паттернов ты его не заменишь, увы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: кадровики совсем рехнулись
От: elmal  
Дата: 21.11.18 06:48
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Неправда.

Но правда в том, что 90 процентов выпускников программерских специальностей об обратной польской записи не слышала.

DB>Эта задача не имеет никакого отношения ко всему вышеперечисленному. Но при желании, конечно, натянуть сову на глобус можно.

Интерпретатор выражения, записанного в обратной польской записи — это вообще самый тривиальный интерпретатор, который только можно придумать. Пишется вообще в лоб без малейших усилий, исключительно на остаточных знаниях. Просто вырожденный случай более сложных интерпретаторов. Я в свое время, если собеседовал студентов программерских специальностей, просил рассказать как программно вычислить (2 + 3) * 5 + 7. То есть как бы выглядел алгоритм, код писать не просил. Ни один кроме невнятного мычания ничего сказать не мог. Вообще ничего. Пять минут думал, и далее говорил сдаюсь. Когда сам был студентом, подобное писать приходилось. Причем совсем не в элитном ВУЗе. И если что (я потому и спрашивал это) — подобные интерпретаторы, только гораздо более сложные, вполне вероятно что могло бы понадобиться поддерживать, дорабатывать и т.д. Даже кандидат, несколько лет проработавший в JetBrains (неплохой, кстати, кандидат) — тот тоже сдался, никаких мыслей не было как подобную невозможную задачу можно было решить и какие подходы применить. Соответственно плюнул и уже такое не спрашиваю.
Re[2]: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 06:53
Оценка:
Здравствуйте, ·, Вы писали:
CM>>expr = -?[0-9]+
CM>>expr = expr expr [+-*/]

CM>>Например:

CM>>1 1 + 2 3 * -
CM>>должно получиться -4

CM>>Во первых, грамматика вообще неверна.

·>Вроде верна. Что не верно?

Не специалист в этой области, но разве вместо:
expr = expr expr [+-*/]


не должно быть:
expr = expr expr [+\-*/]


т.е. "-" не экранирован. И по предыдущему выражению видно что диапазоны в наборе символов используются.
ARI ARI ARI... Arrivederci!
Re[2]: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 07:08
Оценка:
Здравствуйте, T4r4sB, Вы писали:


TB>А где тут инфиксная нотация? Это ж обычная полька.


Не обычная, а обратная
ARI ARI ARI... Arrivederci!
Re: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 07:11
Оценка: +1
Здравствуйте, CodeMonkey, Вы писали:

5 минут включая отладку (powershell, несколько многословно, без проверки на ошибки, но мне лень):

function ReversedPolish-Solver($expr) {
    $tokens = $expr -split '\s+'

    $stack = [System.Collections.Stack]::new()

    $tokens | % { 
        switch -Regex ($_) {
            '^-?[\d]+$' { $stack.Push($_) }
            '^\+$' { 
                    $b = $stack.Pop()
                    $a = $stack.Pop()
                    $stack.Push([float]$a + [float]$b)
                 }
            '^-$' { 
                    $b = $stack.Pop()
                    $a = $stack.Pop()
                    $stack.Push([float]$a - [float]$b)
                 }
            '^\*$' { 
                    $b = $stack.Pop()
                    $a = $stack.Pop()
                    $stack.Push([float]$a * [float]$b)
                 }
            '^/$' { 
                    $b = $stack.Pop()
                    $a = $stack.Pop()
                    $stack.Push([float]$a / [float]$b)
                 }
        }

    }

    return $stack.Pop()
}

ReversedPolish-Solver "1 1 + 2 3 * -"


PS. В примере ТС вместо "-" стоит тире, будте внимательны.
ARI ARI ARI... Arrivederci!
Отредактировано 21.11.2018 7:11 Somescout . Предыдущая версия .
Re[4]: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 07:16
Оценка:
Здравствуйте, reversecode, Вы писали:

R>это абсудр

R>если вести такую логику
R>то ввп должен уметь печь вкусные булочки (для разогрева) а иначе как он тогда управляет страной ?

Нет, если использовать вашу логику, то ВВП не должен знать азов экономики — он же не экономист, он выше этого.
ARI ARI ARI... Arrivederci!
Re[6]: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 07:23
Оценка:
Здравствуйте, ·, Вы писали:

·>Тут важно не обратная польская нотация, а способ представления и обработки древовидной структуры данных.


Но её же (древовидной структуры) нет в RPN? У RPN как раз плюс что не нужно парсить выражение и строить его дерево — можно просто последовательно его вычислить (пример
Автор: Somescout
Дата: 21.11.18
)
ARI ARI ARI... Arrivederci!
Отредактировано 21.11.2018 7:46 Somescout . Предыдущая версия .
Re[5]: кадровики совсем рехнулись
От: De-Bill  
Дата: 21.11.18 07:25
Оценка: +3
E>Интерпретатор выражения, записанного в обратной польской записи — это вообще самый тривиальный интерпретатор, который только можно придумать. Пишется вообще в лоб без малейших усилий, исключительно на остаточных знаниях.

Никаких остаточных знаний здесь не нужно. Эту задачу прекрасно сможет решить школьник, увлекающийся программированием, без каких либо остаточных знаниях о теории вообще. Достаточно ему объяснить, что это вообще такое. Натягивание теории "парсеров, лексеров и синтаксических деревьев" на решение этой задачи — это натягивание совы на глобус. А вот в обратную сторону может быть и верно: для объяснения теории можно в качестве примера привести эту задачу.
Re[6]: кадровики совсем рехнулись
От: elmal  
Дата: 21.11.18 07:33
Оценка: +1 :)
Здравствуйте, De-Bill, Вы писали:

DB>Никаких остаточных знаний здесь не нужно. Эту задачу прекрасно сможет решить школьник, увлекающийся программированием, без каких либо остаточных знаниях о теории вообще. Достаточно ему объяснить, что это вообще такое. Натягивание теории "парсеров, лексеров и синтаксических деревьев" на решение этой задачи — это натягивание совы на глобус. А вот в обратную сторону может быть и верно: для объяснения теории можно в качестве примера привести эту задачу.

Вот именно. Но реально я охреневаю, когда такая задача оказывается непроходной для реального программиста. Я не понимаю, как такой детсад можно забыть. Единственное у меня объяснение — в школе программированием не увлекался. Институт в основном в ночных клубах просиживал, на лекциях не появляясь, а сессия куплена. А на работе нужно формочки клепать да в базу вставлять.
Re[7]: кадровики совсем рехнулись
От: De-Bill  
Дата: 21.11.18 07:40
Оценка:
E>Вот именно. Но реально я охреневаю, когда такая задача оказывается непроходной для реального программиста.

Человек прежде всего не понял условия. Вне всякого сомнения — это минус. Если он не смог в ходе беседы выяснить, что от него требуется — это большой минус. Если же собеседующие просто не стали отвечать на его уточняющие вопросы, то значит они чудаки (на букву М), с такими лучше не работать.
Re[6]: кадровики совсем рехнулись
От: TMU_1  
Дата: 21.11.18 08:07
Оценка: +1 :)
CC>Это примерно как уметь посчитать в уме сколько будет 2**100500 / 2**100490



Ух ты. Даже я в состоянии посчитать.
Re[8]: кадровики совсем рехнулись
От: Glestwid  
Дата: 21.11.18 08:27
Оценка: +1
DB>Если же собеседующие просто не стали отвечать на его уточняющие вопросы, то значит они чудаки (на букву М), с такими лучше не работать.

А если собеседующие для контакта с кандидатами используют хрюшу-передаста, которой что экстаз, что унитаз, и она вопрос и ответ передает с использованием своего затейливого ума?
Re[9]: кадровики совсем рехнулись
От: De-Bill  
Дата: 21.11.18 08:46
Оценка: :)
G>А если собеседующие для контакта с кандидатами используют хрюшу-передаста, которой что экстаз, что унитаз, и она вопрос и ответ передает с использованием своего затейливого ума?

Тоже хороший фильтр. Не смог договориться с HR, прозвучали хоть какие-нибудь уничижительные нотки по отношению к ней — no hire однозначно.
Re[3]: кадровики совсем рехнулись
От: CreatorCray  
Дата: 21.11.18 09:39
Оценка: +1
Здравствуйте, Somescout, Вы писали:

S>Не обычная, а обратная

Обратная и есть обычная
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[6]: кадровики совсем рехнулись
От: CreatorCray  
Дата: 21.11.18 09:39
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Ну креатор с единственно верным решением несогласен

Ты как обычно ничерта не понял
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[8]: кадровики совсем рехнулись
От: CreatorCray  
Дата: 21.11.18 09:39
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>И вообще, инженер всегда должен уметь смотреть на один уровень вглубь — то есть, если пишешь на C#, надо понимать, в какой MSIL превращается код. Если пользуешься библиотекой — надо знать, как она устроена внутри.

S>Но вот обычный критерий хорошего инженера — любопытство, которое и приводит к тому, чтобы разобраться — что там "унутре". Если этого любопытства нет — то никаким надрачиванием фреймворков и паттернов ты его не заменишь, увы.

Разрешите подписаться!
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: кадровики совсем рехнулись
От: CreatorCray  
Дата: 21.11.18 09:39
Оценка:
Здравствуйте, Somescout, Вы писали:

·>способ представления древовидной структуры данных.

S>Но её же (древовидной структуры) нет в RPN?

Написано жеж...
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[3]: кадровики совсем рехнулись
От: CreatorCray  
Дата: 21.11.18 09:39
Оценка:
Здравствуйте, elmal, Вы писали:

E>Тык это. В российских вузах же CS не учат.

Дык это, а самому пахать как папакарло, не? Копать, разбираться где там унутре неонка и почему именно так.

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

Ну вот и будет как в песне в КУ: "двести метров жабаскрипта грузят текста триста байт".
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: кадровики совсем рехнулись
От: Somescout  
Дата: 21.11.18 10:10
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

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


S>>Не обычная, а обратная

CC>Обратная и есть обычная

Если верить вики, то нет:
Normal Polish Notation: − 5 × 6 7
Reverse Polish Notation: 1 2 + 4 × 5 + 3 −
ARI ARI ARI... Arrivederci!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.