Re[8]: # как манагеров достали те, кого достали манагеры
От: Олег К.  
Дата: 27.12.10 16:05
Оценка:
L>>Задача Г, автор М.
L>>Как ты правильно отметил, большинство разумных людей используют целочисленные индексы при итерациях.
L>>Но если вдруг возникнет сферическая необходимость запихнуть вещественное число в for, то подобная бяка должна выявляться вторым юнит-тестом.
C>А ты знаешь, что ВСЕ числа в JS — это double? Или ты хочешь сказать, что HTML — это никому не нужно?
Да пофиг. Нормальный программист напишет
for (var i = 0; i < 5; ++i)
     do_something();

Ненормальный напишет
for (var i = 0; i != 5; ++i)
     do_something();
Re[9]: # как манагеров достали те, кого достали манагеры
От: dilmah США  
Дата: 27.12.10 16:09
Оценка: +5
ОК>Да пофиг. Нормальный программист напишет
ОК>
ОК>for (var i = 0; i < 5; ++i)
ОК>     do_something();
ОК>

ОК>Ненормальный напишет
ОК>
ОК>for (var i = 0; i != 5; ++i)
ОК>     do_something();
ОК>


ты видимо не просек всю фишку. Фишка в том, что если 5 велико, то возникнет бесконечный цикл, потому что i перестанет меняться от итерации к итерации, и останется меньше предела.
Re[11]: # как манагеров достали те, кого достали манагеры
От: Олег К.  
Дата: 27.12.10 16:13
Оценка:
ОК>>>>Они поработали на имя. Теперь имя работает на них.
M>>>У google вроде всегда так было.
ОК>>Отнюдь. Сейчас Гугл уже не тот как лет восемь назад.
M>Всегда там были такие задачки, я про это еще восемь лет назад читал.
Я о работе а не интервью.
Re[10]: # как манагеров достали те, кого достали манагеры
От: Олег К.  
Дата: 27.12.10 16:17
Оценка:
D>ты видимо не просек всю фишку. Фишка в том, что если 5 велико, то возникнет бесконечный цикл, потому что i перестанет меняться от итерации к итерации, и останется меньше предела.
Как часто у тебя встречалась такая ситуация на практике?
Re[9]: # как манагеров достали те, кого достали манагеры
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 27.12.10 16:32
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Ненормальный напишет

ОК>
ОК>for (var i = 0; i != 5; ++i)
ОК>     do_something();
ОК>


А что в этом ненормального? Например, у меня есть такой код, как его запишут адекватные программисты?

function lineMoves(from, delta, isShort)
{
  for (var i=0; i<delta.length; ++i)
  {
    var to = from;
    for(;;)
    {
      to += delta[i];
      if ((to & 0x88) != 0) break;
      var piece = fields[to];
      if (chessGame.pieceColor(piece) == active) break;
      retValue.push(newMove(from, to, piece != null ? "TAKING" : "MOVE"));
      if (isShort) break;
      if (piece != null) break;
    }
  }
}

function kingMoves(from)
{
  lineMoves(from, [1, 15, 16, 17, -1, -15, -16, -17], true);
}

function queenMoves(from)
{
  lineMoves(from, [1, 15, 16, 17, -1, -15, -16, -17]);
}

function rookMoves(from)
{
  lineMoves(from, [1, 16, -1, -16]);
}

function bishopMoves(from)
{
  lineMoves(from, [15, 17, -15, -17]);
}

function knightMoves(from)
{
  lineMoves(from, [14, 18, 31, 33, -14, -18, -31, -33], true);
}
Re[6]: # как манагеров достали те, кого достали манагеры
От: Трурль  
Дата: 27.12.10 16:43
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Мой ход рассуждений был более простым: перебираем все типы. Для целочисленных это не может быть справедливо для любого диапазона, в котором два и более значений. Следовательно код бессмысленный.


Не скажите. А может, нам нужна функция, тождественно равная нулю.
Re[7]: # как манагеров достали те, кого достали манагеры
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 27.12.10 16:49
Оценка: +1
Здравствуйте, Трурль, Вы писали:

Т>Не скажите. А может, нам нужна функция, тождественно равная нулю.


Есть более понятное выражение этой идеи:

function() { return 0; }
Re[7]: # как манагеров достали те, кого достали манагеры
От: MescalitoPeyot Украина  
Дата: 27.12.10 16:53
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Во-первых, задачка как раз на то, как быстро чел начинает тупить. Типа нет решения в лоб. Нет и всё, и никто его не видит, а решение таки есть.


А как такое решение: "какой-то тип с перегруженным плюсом, образует группу с нейтральной 1"? По собственному опыту знаю, после этого начнется "ой, ну да, это подходит, ну а вот можно и по другому". И эти люди мне будут говорить о зашоренности? Я ж говорю задачка в такой формулировке и с таким временным ограничением тупо на первую ассоциацию.

E>Вот тут Кочетков недавно в этюдах игруху предлагал -- расследовать реальную проблему. И там тоже они несколько дней отделом рыли, пока не допёрли до того, как воспроизводится эффект.


Читал, участвовал. Аналогия не катит. Это как раз антипример который показывает что между решением задач на 30 секунд и решением рабочих проблем на несколько дней нет ничего общего. Как по мне такая длительная задержка произошла как раз из-за того что в горячке не сели и не расписали возможные стороны проблемы, т. е. не хватило той самой методичности которая на коротких задачах только мешает. (А вообще Кочетков сам виноват: он Оперу не любит вот она ему и мстит).

E>Конечно есть риск нарваться на чела, который просто собаку на даблах съел. Но мне так кажется, что в подавляющей доле случаев тест выявит тех, кто умеет быстро искать пародоксальные ответы, а не спецтв в даблах...


Осталось разобраться какое отношение имеют парадоксальные ответы к практической деятельности.
Re[3]: # как манагеров достали те, кого достали манагеры
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 27.12.10 18:28
Оценка: +1

Не знаешь, как пользоваться плавающей точкой.


Нифига не сильная телепатия . Я знаю как ими пользоватья и даже примерно представляю внутреннее устройство — но — прмерно. Ни разу на практике мне не понадобилось точно выяснять как реализованы числа с плавающей точкой. Ни на одном из языков, на которых программировал. Хотя бы потому, что если я буду лезть внутрь всех используемых языков и технологий — то мне жизни не хватит чтобы досконально разобраться, как оно все работает. Такой фокус пожалуй можно бы было провернуть с профильным C++ — но необходимости ни разу не было.
Re[3]: # как манагеров достали те, кого достали манагеры
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 27.12.10 18:33
Оценка:

Вы всего-то не работали в этой области — мощные математические вычисления — не более того.


Угумс. Что как бы намекает нам — Senior C/C++ не будет знать наизусть весь ISO и все corner cases. Вот я например разрабатывал библиотеки и досканально знаю как рабтают шаблоны. А программист из того же геймдева вряд ли сможет за 30 секунд нарисовать шаблон, который при параметризации сигнатурой функции поэвалуейтиться (какое красивое слово) в тип ее второго параметра O_O. И не потому что хуже меня — а потому что изучал другие области применения — оптимизацию по скорости, работу с памятью и иже с ней.
Re[8]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:28
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>>>>>Советую учить Си по Кернигану и Ритчи а непонятно по кому.

М>>>>но до сих пор работает: foo(a,b){return a+b;}
ОК>>>Кстати, как это будет работать если при вызове передашь double-ы, например? Или структуры?
М>>какие структуры? это работает как int foo(int a, int b){return a+b;} ну и как это будет работать если при вызове передать структуры? это int по умолчанию, а вовсе не #define foo(a,b) ((a)+(b))

ОК>Здесь
Автор: Олег К.
Дата: 27.12.10

вы меня извините, но во времена дохлого страуса был распротранен код типа (который его жутко напрягал):

foo();

bar()
{
foo("hello", 3);
}

foo(char *s, int n)
{
for(;n>0;n--) printf("%s\n", s);
}

и о чем дохлый страус писал в дизайне и эволюции плюсов.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[7]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:30
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, мыщъх, Вы писали:


М>>задача как задача. все же лучше, чем сдвинуть гору фудзи кстати, гугл большой. намного больше чем слон. единого стандарта набора спецов там нет. HR'ы обращаются к программерам, чтобы те составили им задачку которая не встречалась ранее и которая бы проверяла базовые знания. кстати, работа с вещественными это и есть та база без которой никуда. как тут уже справедливо заметили, что банальный цикл рискует стать бесконечным только потому что на каком-то этапе обломиться с инкрементом.


L>Задача Г, автор М.


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

L>Но если вдруг возникнет сферическая необходимость запихнуть вещественное число в for, то подобная бяка должна выявляться вторым юнит-тестом.
на си и плюсах -- согласен. как быть с java script?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[4]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:35
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, мыщъх, Вы писали:


М>>про финансы никто не говорил. мое мнение, что TYPEA это все-таки плавучка, но для плавучки в общем случае нельзя использовать '=='. а смысл данного кода... ну это похоже на проверку успешности инкремента на единицу. как только единица теряется мы думаем что делать по контексту.


M>В общем случае нельзя. Но в конкретном случае можно, если знаешь, что делаешь.

а я вот подумал вот о чем -- а если ли у нас гарантия, что поведение программы не будет зависеть от настроек компилятора? ведь x86 нативно работает не с float'ом. и без оптимизации там на каждом шагу происходит сплошное преобразование типов. а после оптимизации может оказаться, что у нас уже далеко не float и потери единицы не происходит. и если мы используем данную функции как IsIncOk(float a) то она может вернуть ок, даже когда на float начинается потеря точности, что обрушит код вызывающей функции...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[5]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:40
Оценка: 3 (1) +2
Здравствуйте, The Lex, Вы писали:

TL>Здравствуйте, мыщъх, Вы писали:


М>>внимание, правильный ответ:

М>>(ну может не совсем правильный, но это то, что ответил я и мне сказали -- угу, это мы и хотели бы услышать). этот код проверят -- не вышло ли 'a' за диапазон, в котором начинаются потери слева от запятой, но этот код кривой и делает это неправильно, поскольку операция сравнения с плавучкой оператором == не делаются и в продакшене этому коду не место, конечно. с другой стороны, касательно js и других языков где типы невозможно задать явно это вполне сносный способ оценки с каким типом мы имеем дело, при условии, что интерпретатор языка не будет менять типы на лету.

TL>Можно встречный вопрос: какая практическая ценность от такой проверки — в смысле от знания, что "не вышло ли 'a' за диапазон, в котором начинаются потери слева от запятой"?


у меня есть только одна идея. если мы вращаем цикл, последовательно увеличива a на единицу, то это глупо, конечно, но мы хотим знать, что действительно ли a увеличилось или нет. однако, это не будет работать при включенной оптимизации. точнее может и не работать, т.к. компилер выполнит (a+1)==a на регистрах FPU и скажет, что все пучком, а в настоящем float уже будут потери и все накроется медным тазом. короче, очень нестабильный код...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:46
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, мыщъх, Вы писали:



М>>function foo(a){ return ((a + 1) == a); }


М>>ВОПРОС:

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

M>А что про машинное эпсилон уже перестали рассказывать? Дауж. Может мне в гугль наняться, вроде чувствую еще не все из матмоделирования забыл

а вот я про эпсилон слышал звон, да не знаю где он. гугл сейчас готовит очередную порцию найма. по каким направлениям не в курсе. но точно не по поиску. планирует добавить новые сервисы. какие -- пока не разглашается. но мат. моделирования там будет много это я точно говорю
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[6]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 19:49
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, мыщъх, Вы писали:


Pzz>>>чтобы назвать число, человек должен знать, как плавучка внутри себя устроена. думаю, современные соискатели понятия об этом не имеют

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

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

совершенно согласен. огромному кол-ву людей ничего не интересно за пределами из узкой специальности. просто потому что непосредственно за знание формата плавучки и преобразования ее к "нативному" формату FPU им никто не платит...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[7]: # как манагеров достали те, кого достали манагеры
От: Pzz Россия https://github.com/alexpevzner
Дата: 27.12.10 19:54
Оценка:
Здравствуйте, мыщъх, Вы писали:

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

М>совершенно согласен. огромному кол-ву людей ничего не интересно за пределами из узкой специальности. просто потому что непосредственно за знание формата плавучки и преобразования ее к "нативному" формату FPU им никто не платит...

Вообще, забавно. Ребенку интересно все, до чего он может дотянуться. В какой момент взрослые утрачивают этот интерес, и почему это происходит с большинством, но не со всеми?
Re: # как манагеров достали те, кого достали манагеры
От: superman  
Дата: 27.12.10 20:06
Оценка:
Здравствуйте, мыщъх, Вы писали:

Вот за что люблю КЫВТ — тут и в ветке для флейма можно что-нибудь интересное подчерпнуть
Re[8]: # как манагеров достали те, кого достали манагеры
От: LaptevVV Россия  
Дата: 27.12.10 20:33
Оценка:
Здравствуйте, Pzz, Вы писали:

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


LVV>>Ответ неверный для всех современных ЭВМ. ИБО IEEE-754 — стандарт представления чисел с плавающей точкой. Реализован на ВСЕХ современных ЭВМ.


Pzz>Ну уж если меряться пиписьками, мне найдется, что ответить:

Я — не меряюсь ничем...
Pzz>1. Я сознательно сказал x86, а не ieee-754, потому что первое слово понятно всем, а второе мало кому (к тому же, мне лень уточнять номер стандарта)
Не нужно думать, что большинство не знает стандарта. Я думаю, что большинство как раз знакомо с ним...
Pzz>2. Софтверная реализация плавучки может использовать другой формат, более удобный именно для софтверной реализации. И такое реально встречается на практике
С этим согласен, да. В ТурбоПаскале тип real по структуре совершенно отличался от ieee-754 и занимал 6 байтов, а не 4 или 8.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: # как манагеров достали те, кого достали манагеры
От: мыщъх США http://nezumi-lab.org
Дата: 27.12.10 21:12
Оценка:
Здравствуйте, Skelterer, Вы писали:

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



MX>>>Гугль набирает сишников?


D>>их интел купил, а не гугл


S>мыщх писал:

М>>Знакомый манагер из Новой Империи Зла (G$$gle) под рождество совсем опечалился
что не мешает мне иметь друзей в гугле и говорить с ними на извечные темы, что программисты нынче уже не те...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.