Pull to refresh

Comments 126

Можно запихнуть шары с плотностью \pi/\sqrt{18}=0.74… Пихать дополнительные шары надо не в центр куба, а во все центры граней.
это для куба 2х2х2 учитывается только центр, для бОльших размеров учитываются и центры граней.
Хороший подсчёт. С надеждой или интереса ради?
зы. в заголовке опечатка «гольфов»
Спасибо, поправил.
Вообще, для интереса. Но надежда умирает последней ;-)
а в конце статьи ещё «гольфы» остались ;-)
Это вопрос, показывающий насколько быстро и точно вы можете прикинуть что-либо (например затраты, объем необходимого места под данные).
Так что точность тут не на первом месте.
Точность — вежливость королей.
На собеседовании смысл другой.
Предполагается, что у вас нет ни экселя, ни формул, ни шара для измерений, ни данных по автобусу — они тоже разные бывают. Смотрят, как вы обоснуете данные, которые вы натурально возьмете с потолка. Проверяется возможность предсказывать и обосновывать. Круто, когда вы точный ответ знаете, но на каждую хитрую жопу сами знаете что найдется.

Джоел спольски любил задавать вопрос — нарисуйте дом. Вы рисуете квадратик с шапочкой, может даже окошком и дверцей. И когда закончили, Спольски говорил — да, совсем забыл. Домик-то для двуголовых жирафов. Что, размеры не те? чего не уточняли? все, до свиданья.

У вас тот же синдром… ничего не уточнили, восприняли вопрос буквально, буквально решили.
Хех, я помню попался на таком вопросе. Правда мне сказали, а что если там будут одноногие слепые жирафы. Вообще думаю тут проблема в том, что в русском языке слово «домик» имеет вполне определенную коннотацию, заложеную еще с детства. Если бы вопрос стоял нарисуйте дом все первая реакция была бы «какой?».
Кстати, вы подняли очень тонкий вопрос: отличие смысла в словах «дом» и «домик». В данном случае действительно, при слове «домик» вспоминается именно обычный квадратик с шапочкой, а при слове «дом» более абстрактный объект. Тут уже имеет смысл уточнить что за дом: загородный коттедж, городская многоэтажка или еще какой?
Вот и мне вспомнилось, что Колмогоров на экзамене в аспирантуру любил задавать следующий вопрос: «Сколько существует движений в пространстве, переводящих куб сам в себя?».
Казалось бы, вещь не сложная, а попробуйте сосчитать?
Считать несложно: куб имеет центр симметрии (совпадает с его центром — пересечением больших дтагоналей), 3 плоскости симметрии (проходят через противоположные грани), еще 6 плоскостей симметрии (проходят по диагоналям квадратов), 3 оси 4-го порядка (проходят через середины противоположных граней), 4 оси 3-го порядка (через противопол. вершины) и 6 осей 2-го порядка (через середины ребер). Осталось просуммировать :)

Вообще, я не понял, что эта задачка делала в арсенале Колмогорова — она на чистое знание материала, а не сображуйку. Хотя может в его время это не проходилось.

Но самое главное: принципиально отличается смысл задач. В одном случае нужно понять что от тебя вообще хотят, а в другом — просто аккуратно посчитать при наличии всех данных.
По моему тут даже дело не в восприятии слов. Если на собеседовании просят нарисовать «домик» (или «дом», не важно), то (по крайней мере у меня) возникнет вопрос — «я пришел к ним на должность Х устраиваться, а они меня просят У рисовать. В чём-то есть подвох.» — соответственно надо будет уточнить некоторые нюансы.
И будете в каждой просьбе и каждом вопросе искать подвох?
Есть психологические тесты на эту тему, причем совершенно без подвоха, Ваша фантазия выдает Ваш характер.
А Вы когда домик нарисовали неужели подписали высоту и ширину? Кто сказал что жирафы туда не влезут?
Только вот не HR. Эйчару насрать, он такие вопросы не задает.
Это принцип прикопаться к столбу.
всегда можно тут же дорисовать масштаб и показать, что нарисованная дверь на самом деле высотой 6 метров, и (дорисовав пунктиром еще одну линию) уточнить, что окно расположены на втором этаже (а на первом — склад сена) ;-)
Просто рядом дорисовать мааленького жирафа, чтобы было ясно соотношение масштабов.
> Спольски говорил — да, совсем забыл. Домик-то для двуголовых жирафов. Что, размеры не те? чего не уточняли? все, до свиданья.

Что в первую очередь характеризует интервьюера. На месте его начальника, такого бы кадра не допускал бы до собеседований ни за что.
Наверное, поэтому он и основал свою собственную вполне успешную компанию, чтобы всякие недалёкие начальники ему не указывали :)
Есть еще миллион вполне успешных компаний, где такое не практикуется.
Я понимаю.
Но его метод работает на практике, а значит имеет право на жизнь :)
Может, все хорошо не «благодаря», а «вопреки»?
Мне иногда кажется, что вся наша жизнь не «благодаря», а «вопреки».
Говорят, крестится надо, когда кажется.
Честно сказать, учитывая цитируемость господина спольски в высших ИТ кругах, я бы сказал, что его точка зрения имеет право на сущестование.
Очень хороший интервьюер! Сразу ясно, что тебе среди этих клоунов делать нечего. И для этого не придется проработать там энное количество времени. У меня был как-то подобный опыт. Боже меня упаси еще раз на такое попасться.
Просто в таком случае надо с начала интервью или получив такое задание определиться — мы просто калякаем или это задание. Если просто калякаем — то без разницы как мы будем рисовать. А если задание, тогда нужно уточнять детали, требовать ТЗ. :)
и что? А почему домик в виде квадратика с шапочкой не подходит для двухголовых жирафов?
Ну и глупо. Дом (любой) рисует свободный человек, а уточняет при таком вопросе детали недоумок, который шефу будет в рот заглядывать постоянно. То-то у Спольски программы какие-то отстойные, понабрал всяких идиотов :)
а еще он педик, и не говорите, что это не имеет отношения к работе)))
к заглядыванию в рот, ага
UFO landed and left these words here
Тогда уж «Идиотов, умеющих домики для жирафов рисовать» )
А вы какими из них пользовались?
UFO landed and left these words here
Обломался бы, расстроился, и не взял вас на работу :)
UFO landed and left these words here
Скорее всего олени и поручают. Так что правильно бы сделал.
UFO landed and left these words here
И снайперов.
/irony Вы уже отправили резюме в корпорацию зла?
придёт ответ — «Зануд не берём!»
> можно поместить туда 9-й шар? Куда? Конечно же, в самый центр.
Я думаю троечку на экзамене по кристаллохимии бы вы получили :)

То, что вы описали назывется ОЦК — объемноцентрированная кубическая решетка. Ее «КПД» действительно 68.02%. Кроме нее существуют и более «эффективные» способы упаковки: ГПУ (гексагональная плотнейшая упаковка) и ГЦК (кубическая плотнейшая) — у обеих по 74.05%. Так же есть более «рыхлые»: ГПК (гексагональная плотная кладка) — 60.46% или КПК (кубическая плотная кладка) — 52.36%. Как именно это выглядит в пространстве — лучше посмотреть вот в этой pdf-ке: fhtt.mitht.org/files/BOOK2.pdf

На самом деле, если бы я собеседовал программиста, то мне было бы достаточно, чтобы человек вспомнил, что шары не займут все пространство. А если на каверзный вопрос «сколько примерно они могут занять», ответил бы «где-то половину или две трети» — то вообще был бы счастлив. Но, если бы я ему дал время и задачу получить точную цифру, то единственный вариант ответа 68% меня бы не удовлетворил.
Зачем в таком случае я потратил время на некачественное решение?

Потому что иногда не надо чрезмерно усложнять самому себе жизнь :))
Любой, кто сдавал физику твёрдого тела, помнит про ГЦК и 74% :)
У меня вместо нее была кристаллохимия :)
Но даже если человек — гуманитарий, закончил истфак, то все равно должен понимать где нужна быстрая оценка, а где требуется точный ответ и нужно предусмотреть альтернативные варианты.

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

Если представить случай абстрактного собеседования, то человека с примерно таким ответом, я бы взял как разработчика — потому что он четко и методично раскопал тему и рассмотрел 1 вариант до самого дна. Значит он будет четко копать «от забора и до обеда». Если же человек даст мне только оценку, но предположит что может быть несколько вариантов упаковки и найдет их в гугле, то я его взял бы на вакансию ведущего разработчика. Значит он умеет смотреть шире, предполагать, что где-то может вылезти неоднозначность, и в ситуации с недостатком условий сможет их найти. То есть его не напугать нестандартным поведением системы.
А я бы сам вопрос прооптимизировал. Я бы дал задачу и дал человеку гугл, а сам бы посмотрел первые, скажем 5 запросов, которые он в гугл введет. В любом случае, при работе он будет пользоваться поисковиками — пусть сразу покажет, насколько эффективно он это умеет делать.
А что он помнит из институтского курса, если это не имеет прямого отношения к работе — наплевать.
«сколько шариков для гольфа поместится в школьном автобусе»

Это будет правильный первый вопрос. Сначала нужно исследовать уже существующие решения, и только если они не удовлетворяют по каким-то критериям, писать своё :)
UFO landed and left these words here
Данная тема может проходится в разных курсах: кристаллография, кристаллохимия, физика твердого тела и пр — все зависит от вашей специальности в вузе.
У нас этой темы вообще не было. Хотя ФТТ была. Но очень она у нас специальная была.
это очень актуально, учитывая, что гугл давал это задание на должность менеджера проектов.
Действительно актуально! Менеджеру проектов достаточно сказать «1/2 или 2/3» — значит он задумывается о внутренних ограничениях проекта и технологии. Каковы точно эти ограничения ответят программисты. Но задача менеджера спросить об этом! Иначе он продаст клиенту такое кол-во шаров, которое не сможет довезти в автобусе, и компания, вместо прибыли попадет на дополнительные расходы или неустойку.
Лично я при прочтении задачи, сразу абстрагировался от мячиков и перешел к кубикам в которые они вписаны, т.е. получил примитивную кубическую решетку (типа неодимово-магнитного конструктора — ). Посчитать сколько кубов уместится в «параллепипед» автобуса на порядок легче и быстрее, при этом интуитивно понятно, что при переходе от шара к кубу учлось то самое «потерянное» пространство с достаточной точностью. Кстати ответ примерно совпадает с ответом, который приводится по ссылке.
Кто-то считает решение неверным, раз ставит минус? Объясните пожалуйста чем оно не устроило?
Заметка мимипроходившего: банально, если сдвинуть каждую горизонтальную плоскость представленного вами шара так, чтобы верхние шарики попадали в промежутки между нижними, получим в разы бОльшую плотность ;)
Ну не в разы, во-первых, во-втроых не всегда, например если представить 216 шариков выше заключенных в коробку — то вы не сможете сдвинуть плоскости, коробка не даст, либо придется вынимать шарики из нее и как то их перекладывать по другому. Но я имел ввиду не это, а то, что мой подход позволяет очень быстро посчитать примерное количество, да, за счет точности. А практически любое другое решение (кроме изначального поделить объем автобуса на объем шара, но оно совсем неточное) — требует относительно сложных вычислений.
вы не правы, попробуйте подумать почему. Намекну про половинки шариков с каждой из сторон
В предложенном вами варианте шарики займут лишь 52% пространства. Есть способы, при которых можно занять 74%. Разница почти в 1.5 раза.
Да я понимаю это прекрасно :)
Я привел вариант при котором быстро можно прикинуть сколько влезет, по сути в уме. Я не предлагал вариант решения задачи сколько влезет максимально, такого вопроса, кстати изначально и не ставилось. Вообще мой ответ был на ваши вот эти слова:
На самом деле, если бы я собеседовал программиста, то мне было бы достаточно, чтобы человек вспомнил, что шары не займут все пространство.
Но видимо я не очень ясно дал это понять и мой ответ приняли за точное решение (типа как у автора топика). Но по моему в данной задаче точность интересует мало, так как очень мало начальных условий. С таким же успехом можно еще вспомнить про давление, деформацию и вообще материаловедение и посчитать сколько шариков влезет если их в этом автобусе прессануть, ведь шарики для гольфа это не абсолютно твердые тела, возможно они даже под собственным весом в этом автобусе сожмутся.

У меня есть знакомая женщина, она занимала достаточно высокое положение в крупной организации в которой работала, занималась материально-техническим обеспечением. Так вот как то раз ее спросили — сколько нужно денег (примерно) на обновление компьютерного парка — через секунд 15 она дала ответ. Понятное дело, что ответ был не копейка в копейку точным, но примерно давал уровень от которого отталкиваться. Вот так же и тут.
Вы знаете, я ваше решение тоже посчитал как попытку точного расчета при нехватке данных. Вероятно, меня сбило с толку то, что взята конкретная кристаллическая решетка. Именно от нее во многом зависит сколько шаров влезет — разброс в 1.5 раза. Даже количество сидений не так сильно влияет — порядка ±10%. Хотя вроде бы нет расчета, но так воспринимается. Видимо другие пользователи вас так же поняли.
Бывает такое. Дело в том, что при написании ответа, у меня в голове была логическая цепочка — я прочитал топик, потом сходил по ссылке, увидел ответ с расчетом соотношения объема шариков к объему автобуса, посмотрев на то, как «примерно» строится ответ понял, что «примерно» можно посчитать и проще и быстрее — о чем и написал, ответом вам, поскольку вы и написали что тут не нужна в принципе точность. Но т.к. всей этой цепочки я не озвучил, то получил то, что получил, телепатов тут нет :)

Главное, что разобрались :)
Порнография какая то) имхо не для хабра
Наоборот, очень интересная тема. И не так сложно, как вы себе это представляете.
В общем то не сложная, но тут опора на матем расчеты)
Верно, нахер они на хабре сдались! Авору минус, пусть идёт и моделирует складывание шариков в автобус на php.
Есть такой термин — порозность. Зная порозность для шаров, можно было гораздо проще подсчитать их количество. В википедии, к сожалению, нет описания данного термина. Давно проходил это в институте, поэтому навскидку не укажу формулу для расчета порозности.
На самом деле можно ещё принять как доп ограничение — способ заполнения шарами объема. Если выкладывать их слоями, то шары лягут вплотную друг к другу и каждый второй ряд будет содержать на 1 шар меньше длины этого ряда, посчитанную в шарах, соответственно объем (M*N*Z) будет будет состоять из примерно (M/2+(M-1)/2)*(N/2+(N-1)/2)*(Z/2+(Z-1)/2) шаров. Таким образом количество шаров можно оценить (M-1/2)(N-1/2)(Z-1/2)
ПС: Я принял размеры габаритов как целое количества шаров.
UFO landed and left these words here
[irony] Это мы так численно пределы берем Ж))) [/irony]
Я школьный учитель.
Я задал этот вопрос в классе:

— Дети, сколько шариков для гольфа поместится в школьный автобус?
— Два!
— Почему?
— А почему бы и нет? Разве два не поместится?

1) В вопросе нет указания, что вам нужно найти максимальное кол-во шаров.
2) Вам не сказано какой автобус.

Сколько бы предположений вы не строили — вы никогда не скажете точное число шаров, ибо оно зависит от множества параметров.

А вот два — это один из правильных вариантов.

Ну, что? Моих детей возьмут в Гугл?
Конечно, когда подрастут, главное не зашаблонизировать им мышление. Чего им и вам, как учителю всячески желаю :)
«главное не зашаблонизировать им мышление»

и мир во всем мире, пожалуйста ;)
Вообще да. Но некоторые условия действуют «по умолчанию». Мы здесь часто сталкиваемся с высоконагруженными проектами, значит задача скорее всего состоит в том, чтобы выжать максимум из предоставленных возможностей. А какой автобус — надо уточнять.
Здесь самое главное — не цифра и даже не формула. А то как человек будет искать решение. Может ли он видеть ограничения в системе или нет. Понятно, что все сразу не будет видно. Например, неясно можно ли сдавливать шарики — если да, то их может влезть больше. Но важно само умение вдуматься в проблему и понять, где может быть ограничение.

Это очень важно для менеджера. Например, если не учесть, что для проекта потребуется 2 раза больше серверов, то проект может вообще оказаться убыточным. А значит, его делать не надо или делать по-другому. Именно поэтому ответ «ну где-то половина» очень важен для характеристики кандидата.
Это самый офигенный ответ на поставленный вопрос! =)
АВТОР ПОСТА ОТВЕЧАЛ НА ВОПРОС:
Каково максимальное количество шариков для гольфа, которые могут поместится в школьный автобус модели X?
А НАДО БЫЛО ВСЕ ЖЕ ОТВЕТИТЬ НА ВОПРОС:
Сколько шариков для гольфа может поместиться в школьный автобус

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

Доказательство (от противного) — по мотивам курса геометрии 8 класса
Предположим, что 2 шарика не могут поместиться в школьный автобус, но тогда это значит, что объем пространства внутри школьного автобуса меньше, чем объем шариков. Однако, это не так. Из этого делаем вывод — внутри школьного автобуса может поместится 2 шарика.

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

Кстати,
Однако, это не так.

Уязвимая аксиома :)


Я был просто уверен!!!
:) долго картинку искали?

+1
Случайно попалась :)
ага. так я вам и поверил. :)
Супер! Это наиболее адекватный ответ на этот вопрос, детишки молодцы! А точное максимальное количество действительно высчитать невозможно, все эти расчеты только теория.
Вы не совсем корректно решили задачу о плотных упаковках, предположив, что «треугольная» упаковка будет оптимальной. Разумеется, при ряде условий она лучше, чем обычная «квадратная», но смешанные дают гораздо большую плотность.

Подробнее можно смотреть в соответствующих книгах (если мне не изменяет память, «Квант» выпускал даже книжку по этой теме), для ознакомления есть Википедия: en.wikipedia.org/wiki/Sphere_packing
А почему никто не поинтересовался диаметром мяча для гольфа (4.26+ см)? Ошибка в 2 раза создаст ошибку оценки в 8 раз — это горздо больше погрешностей на сидения.
Это не имеет большого значения на таких размерах. Важен % с которым их можно упаковать.
Впрочем если у нас будут мячи 2-3 метра в диаметре, то их можно будет меньше запихнуть — будут сказываться «краевые эффекты» — т.е. невозможность использовать лишнее пространство «сбоку». Если же взять микроскопические мячики в несколько мм диаметром, то их можно будет больше впихнуть.
Но для оценки достаточно знать, что мяч для гольфа помещается в ладонь.
Да, действительно, 4+ или 10 см (при большом размере упаковки) здесь не важно, процент будет один и тот же (проверял — подставлял в расчеты).
Из-за плотности упаковки ошибаешься на 10-15% (52-60-68-74%). Если ошибёшься в дииаметре мяча на 10% (не 4.5, а 5 см), то ошибка объёма будет 30% (чуть больше, 1.1**3, если точно). Это уже больше, чем ошибка от плотности упаковки. А если посчитаете мяч не 4.5 см, а 10 см, то легко посчитать, что в тот же автобус их насчитаете меньше, т.е. ошибётесь, в (10/4.5)**3 = 11 (одиннадцать) раз.
Психологи раньше, а может, и сейчас легко определяли в какой класс (А, Б, В или Г и другие) пойдет первоклашка на собеседовании.
Они спрашивали малыша: «Какое бывает яблоко?»
Если ребенок ограничивался парой или пятью характеристиками типа: вкусное или не очень, зелёное, красное, большое или маленькое, то…
А вот если ребенка не могли остановить и он тараторил, что яблоко может быть чужим, вчерашним, найденным, съеденным, чищеным и т.п., его брали в класс «А»
вот блин, а я со своим «В» классом считал себя нормальным...) Хотя у наших родителей год тогда был гиперсексуальным — аж от А до К были классы)
А я вообще в Ж-классе учился :)
Т.е. Вы ответили «а что такое яблоко?» ))
Вы представляете, мне его даже не задавали! :))
В начальной школе меня вообще считали невменяемым дебилом, потому что я решал быстрее всех задачки, придумывал нестандартные решения, в итоге мне на уроке было страшно скучно и я распевал песенки. Училка вынуждена была постоянно меня окрикивать. Ну представьте, пацан 7-8 лет, которому тупо скучно, что еще делать? Правильно: снова петь через некоторое врмя :)
Такое простое решение как дать мне новых задачек посложнее до нее просто недоперло :).
А я первые 2 года учился в классе «Р» )
Но кажется это было сокращение от «Класс Радости» или что-то в этом роде)
А я в настоящем «Р» учился.
автор учился в «А» классе ))
UFO landed and left these words here
Я учился в «А» классе. У нас был ученик — он 2-й раз на второй год остался… (:
Чорт, а меня взяли за человечка из пяти спичек.
Забавное исследование.
Вот только вопрос этот задается на должность Project Manager, а не Junior Developer.
И лично я его встречал немного в другом виде: Вам поставлена задача заполнить школьный автобус шарами для гольфа. Опишите как вы будете это делать и что вам понадобится.

В такой формулировке вычисление кол-ва необходимых шаров — лишь небольшая часть задачи.
И, как тут писали выше, очень точное вычисление не требуется.
Но зато требуется, например, оценить что будет дешевле — рассчитывать более точно либо купить шаров с запасом, купить лишних и выбросить или купить меньше, а потом докупать.
Также весьма интересен сам процесс заполнения — ведь шары для гольфа — это не кубики, оне раскатываются, а не лежат как положишь.

Так что боюсь, что дотошность автора не помогла бы ему устроиться в гугл.
Дурацкие там ответы. Про автомобиль и отель, например, я бы сказал, что речь об игре «Монополия» (по крайней мере, есть очень похожая данетка)
Кхе-кхе, как и Кнут(Великая Теорема Ферма), Гугл шутит, пытаясь найти красивое решение открытой мат проблемы(ищем гипотезу Кеплера).
У каждой задачи есть красивое, лаконичное и неправильное решение (не помню, кто автор цитаты)
Спасибо, обеспечили интересное чтиво на вечер :)
не понимаю, в чем толк проводить такие точные расчеты, чтобы потом отнять прикинутый с точностью до сотни тысяч объем уже занятого места.
Они пишут: «Им интересны ваши оценки (в институте), даже если вам уже за 30»
Ясно, гугл не для меня, и слава Богу! :)
(а еще я не люблю чувствовать себя глупым, странно, не правда-ли?)
По-моему, правильный программистский ответ: «А сколько надо?» И в зависимости от этого решаем, что делать с условиями задачи.
это правильный бухгалтерский :)
На самом деле это ответ для любой профессии. Но я говорю как программист: если нам нужно заполнять мячиками для гольфа школьный автобус, значит мы что-то не так делаем.
:))
Пока мы ничего не делаем — мы оцениваем разные платформы по возможностям транспортировки шариков :)
У меня знакомый решал подобную задачу. У него была трехлитровая банка вишни, ему нужно было посчитать сколько водки нужно туда было залить, чтобы приготовить настойку. И решил он ее в одно действие, ибо студенты технических вузов знают на зубок цифру заполнения в 61 объемный процент.
И что у него вот точно 3 л * 39% / 0.5 = 2.34 поллитр получалось?
Only those users with full accounts are able to leave comments. Log in, please.