Comments 110
Четвёртая: этих точек гораздо больше
![](https://habrastorage.org/webt/uw/iz/uz/uwizuzupcagftd7mtdyggbbejka.png)
Масштаб не соблюден.
— Спуститься до нижнего крюка и привязать низ веревки (50й её метр) к нижнему крюку
— Снова подняться по веревке наверх на 49,5 метров
— Обрезать веревку и пролетев 99 метров, остановиться держась за веревку в полуметре от земли
— Спрыгнуть на землю :)
Для этого достаточно всего 50м веревки, а не 75. Вероятность выживания альпиниста не 100% :)
Во второй надо шнуры с обеих сторон поджигать, дабы 30 минут и 15 минут отмерить.
В четвертой — как минимум одна.
![](https://habrastorage.org/webt/cu/qm/ut/cuqmutx_wut4pmpseuydijpp-t0.png)
Полюс поменять на южный.
2 — не решал, потому что уже раньше наталкивался на такую задачу и видел ответ
Потом додумался до нормального решения — спуститься, привязать ко второму крюку, подняться до конца первой трети, закрепиться и сделать под собой петлю. Нижнюю часть обрезать и продеть в петлю — спускаться по незакреплённому концу, а затем вытянуть верёвку за другой конец — это 50 метров верёвки и петля на высоте 75.
Делается все проще, отрезаете кусок длинной 25 м, делаете в нем петлю и привязывате к крюку. Оставшиеся 50 м продеваете в петлю и спускаетесь ровно на 50 м=(25+50/2).
Далее вытягиваете 50 м кусок и привязываете его к крюку, спускаетесь еще на 50 м.
Решение нормальное, когда вы продеваете веревку через петлю то получается простейший блок.
Да и вообще главное же решить задачу с помощью наименьшего количества действий и условий.
спуск по двум незакреплённым концамМожно связать в кольцо.
1. Режем верёвку на 25 и 50 м.
2. Делаем петлю на конце 25-метровой верёвки из сдвоенной «восьмёрки» (так надежнее).
3. Привязываем к точке свободный (без петли) конец 25метровой верёвки.
4. Привязываем к себе 50 метров оставшейся части.
5. Вщёлкиваем спусковое устройство (пусть будет «стакан»)в 25-метровую верёвку.
6. Начинаем спуск
7. Едем(спускаемся) до петли.
8. Блокируем спусковое устройство. Вщёлкиваем жумар с усом(петлё) 1 м.
9. Зависаем на жумаре таким образом, чтобы разгрузить спусковое.
10. Продеваем один конец 50м верёвки через петлю, что на 25метровой верёвке. Завязываем на нём узел (грепвайн)
11. На втором конце 50м верёвки также завязываем узел (грепвайн).
12. Спускаем 50 м верёвку вниз следя за тем, чтобы узлы были рядом.
13. Выщелкиваем спусковое устройство из 25 м верёвки.
14. Вщелкиваем спусковое устройство в два конца 50метровой верёвки.
15. Блокируем спусковое устройство. Загружаем его (зависаем на нём)
16. Выщелкиваем жумар.
17. Разблокируем спусковое и едем вниз до площадки.
Узлы на концах не дадут верёвке вылететь из спускового устройства!
На площадке:
1. Пристраховываемся к точке спуска
2. Выщелкиваем спусковое устройство
3. Развязываем 1 узел в конце верёвки
4. Привязываем этот конец к точке спуска.
5. Развязываем второй узел на конце верёвки
6. Сдёргиваем верёвку (тянем за привязанный к точке конец)
7. Когда верёвка упала на площадку, на свободном (непривязанном) её конце делаем узел для страховки и сбрасываем вниз
8. Вщелкиваем спусковое в верёвку
9. Выщелкиваем страховку
10. Едем до земли.
То есть классический ответ — гиря вытеснит меньше.
Однако в задачке не указано, что за лодка (обычная, или подводная) и есть ли в гире пустоты. В случае подводной — гиря вытеснит больше ;)
Рассматривались система — затонувшая гиря и система — затонувшая гиря + затонувшая лодка.
Если рассматривать системы: затонувшая гиря + лодка на поверхности воды и затонувшая гиря и затонувшая лодка, то, во втором случае уровень, воды даже понизится.
P.S. Читал быстро, поэтому на сообщении https://habrahabr.ru/post/342304/#comment_10519546 воспринял «уровень воды» как «объём воды».
Зато какой шикарный способ унизить соискателя и срезать его зарплатные ожидания!
Это может и сработает, но только в случае если для соискателя эта работа будет первой. В противном случае, глупые задачки от HR'а, не относящиеся к будущей работе, вызовут обратный эффект.
шикарный способ унизить соискателя и срезать его зарплатные ожидания!
Может практиковаться и просто ради Культа Карго, без связи с зарплатой, но с отсевом тех, кто задание завалил.
От них не только в гугле отказались, а вообще везде. Да и сами задачи бородаты до невозможности. Возможно, автор не прошёл собеседование в 2005-ом, сильно расстроился и впал в стазис, а теперь вышел из него, но ещё не знает, что на дворе 2017-ый, и теперь унижаютсобеседуют иначе .
Думается для отбора программистов лучше подходят задачи типа загадки Эйнштейна
Другой вариант, наверняка есть какой то узел, который при постоянном натяжении не развяжется, а при подергивании или при резком рывке да, тогда можно такой сверху связать, спуститься до 50м, подергать там или еще че, и продолжить.
Третий вариант: Отрезать 25м и привязать к петле, потом сделать еще одну петлю на оставшемся конце.
На 50м куске сделать петлю для ноги и продеть в петлю на 25м. Спустившись до 25м, вставить ногу в петлю на 50м куске (заранее сделанной), и держа другой конец руками спустить себя до платформы. т.к. 50м кусок у вас остался, просто завязать на платформе и все.
А другие я уже видел.
Узел при подёргивании как раз не надо — верёвка нужна как раз как страховка, т.е. если сорвёшься.
Два одинаковых ящика с песком со стороной ребер 1 метр. В один ящик выливают литру воды, а во второй литру газировки. Что быстрее протечет через ящики вода или газировка?
Если же поиграться с условиями задачи, то можно сказать что жидкость выливают в ящик вблизи его стенки, и тогда часть будет просачиваться через стенки. В этом случае у газированной воды будет преимущество. Большая часть газа улетучится, но часть пузырьков осядет на песке, и сформирует дополнительную подушку, которая воспрепятствуют проникновению воды в песок, и большее её количество прольётся через край (если предположить что ящик деревянный, в нём широкие щели и просачивание жидкости через стенки вообще имеет место).
Также можно увеличить объём воды, чтобы сделать его достаточным для смачивания всего песка в ящике. В таком случае газировка будет делать это немного медленнее (пузырьки газа будут мешать формированию мостиков) и раньше накопит достаточное гидростатическое давление чтобы использовать максимальную площадь боковой поверхности ящика чтобы вытекать через неё. Однако при дальнейшем увеличении количества воды первенство возьмёт негазированная, т.к. она раньше достигнет дна ящика и песок начнёт функционировать как дроссель.
Я подозреваю, что такие задачи дают чтобы дети обратились к родителям за помощью, а те в свою очередь напрягли мозги… или Интернет.
Кстати, кто-нибудь нашел решение этой задачи в инете?
Гораздо интереснее задача станет если
int a,b
a = 2147483646
b = 2
и обработка переполнения на платформе выдаёт ошибку
a = a ^ b;
b = a ^ b;
a = a ^ b;
Но как поясняют знающие люди, память (кэш) все равно используется при совершении операций.
XOR eax,ebx
XOR ebx,eax
XOR eax,ebx
и они поменяются местами, что соответствует Вашему коду буквально.
впрочем можно и так :)
XCHG eax,ebx
Кстати в С++ правильнее использовать std::swap() она как правило занимает 0 операций, то есть компилятор делает ее во время компиляции.
b = 2
б=а-б
а=а-б
б=б+а
Можно и так:
1.
long a = 4;
long b = 2147483647000000L;
b = a — b;
a = a — b;
b = b + a;
2. А можно и так. )
String strA = «4»,strB = «123456789101112131415161718190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000»;
BigInteger biA = new BigInteger(strA);
BigInteger biB = new BigInteger(strB);
biB = biA.subtract(biB);
biA = biA.subtract(biB);
biB = biB.add(biA);
String strA = «4»,strB = «123456789101112131415161718190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000»;
BigInteger biA = new BigInteger(strA);
BigInteger biB = new BigInteger(strB);
biB = biA.subtract(biB);
biA = biA.subtract(biB);
biB = biB.add(biA);
В принципе, Индусы так пишут и до сих пор.
Задачка 1: Про бассейн, лодку и гирю
Есть маленький бассейн. В нём плавает лодка. На стенке бассейна отмечен текущий уровень воды.
Ещё есть чугунная гиря. В каком случае уровень воды в бассейне поднимется больше: если опустить гирю в воду, или если опустить гирю в лодку?
+++
Предполагаем, что в задаче нет лишних слов.
Раз бассейн маленький, то это нам тонкий намёк, прямо-таки ружьём по стене, что чего-то может и не хватить, подсказка, что нужно не забыть проверить предельные, граничные значения. Ну и раз бассейн маленький, то не упускаем из виду, что и лодка может быть маленькая.
И тут вариант опустить (литературнее сказать – поместить) гирю в лодку распадается на целый веер задач:
Лодка в грузу может встать на дно бассейна, при том что гиря утонула бы с головой.
Лодка с гирей может остаться на плаву, при том что уровня воды в бассейне не хватит на то, чтобы целиком погрузить в него гирю саму по себе.
Наконец, лодка с гирей может и… затонуть.
Тут у нас появляется новое раздвоение условий, которое подводит нас к самой интересной задаче: что мы увидим, по сравнению с просто утонувшей гирей, если лодка из материала плотнее воды (сварена из урановых ломов), а что, если она «пробковая»?
Бассейн маленький — потому-что в большом изменение уровня воды будет очень маленьким, на глаз незаметным.
Лодка с гирей не утонет и не сядет на дно.
Не развалится и дно лодки не проломится.
Стенки бассейна вертикальные и при помещении гири в воду или в лодку — вода не перельётся через края бассейна, не уйдёт в слив и тп.
Испарением воды и разширением-сжатием воды из-за изменения температуры принебрегаем
Может я ещё что-то забыл
И при вышеуказаных условиях материал лодки (пробка или уран) не имеют значения.
На концах 25 делаем петли.
Одну петлю 25-метровой надеваем на крюк, во вторую продеваем сложенную вдвое 50-метровую веревку.
Спускаемся на площадку и вытягиваем из петли свою 50-метровую веревку. Спускаемся на землю.
Скорее всего лодка должна вытеснить больше.
на высоте 50 метров, стоя на площадке, сделать «волну» веревкой, что ослабит веревку от ножа, нож упадет (осторожно, чтобы в глаз не попал), и веревка свалится вниз, далее привязываем веревку в второму клюку, теперь нож не нужен (пусть падает вниз) — и мы на земле, ничего резать не надо.
ну и 2 задачи которые слышал чаще всего )
1. На столе лежат девять монет. Одна из них — фальшивая. Как при помощи двух взвешиваний можно найти фальшивую монету? (Фальшивая монета легче настоящих.)
2. Есть две изолированные друг от друга комнаты. В одной находятся 3 лампочки, в другой — три выключателя. Вы стоите в комнате с выключателями и можете перейти в комнату с лампочками лишь один раз. Необходимо определить, какая лампочка включается каким выключателем.
ну и ещё одна, больше на пространственное воображение: как повесить картину на веревке на два вбитых гвоздя, чтобы при выдёргивании любого из них она падала.
Называем одно ведро ПЕРВЫМ, другое ВТОРЫМ.
Алгоритм:
1. Если первое ведро ПУСТОЕ, наполняем его.
2. Если второе ведро ПОЛНОЕ, опустошаем его.
3. Если ни 1, ни 2 не имеют места — переливаем из первого во второе. И так до победного конца.
Смотрите, как оно будет. Пусть первое ведро — на 5 литров. В скобках — действие.
0 0 (1)
5 0 (3)
0 5 (1)
5 5 (3)
3 7 (2)
3 0 (3)
0 3 (1)
5 3 (3)
1 7 (2)
1 0 (3)
0 1 (1)
5 1 (3)
0 6 (1)
5 6 (3)
4 7 — вуаля!
А теперь пусть первым ведром будет на 7 литров:
0 0 (1)
7 0 (3)
2 5 (2)
2 0 (3)
0 2 (1)
7 2 (3)
4 5 — ух ты, а так куда быстрее.
Но если оно вообще получается (а оно получается, когда то, что нужно добыть, кратно НОД объёмов вёдер) — оно получится и так, и так.
2. Набираешь 7л воды в ведро
3. Погружаешь 5л ведро в 7л, вытесняя воду из 7л. В 7л ведре остается 2л — выливаешь их в 5л.
4. Повторить п.3
5. В 5л ведре — 4л воды
В такой ситуации когда гиря в лодке уровень будет выше чем когда гиря в воде т.к. плотность гири в 3 раза выше плотности воды. Почему? Находясь в лодке гиря вытеснит воду по весу — три своих объёма. А находясь в воде только один свой объём. Избыток массы можно не учитывать т.к. она лежит на дне.
Задавать такие задачи смысла не имеет. Разве что вы нанимаете решателя логических задачек.
Зато их можно обсудить с коллегами за обедом.
1*x = 0.9*x + 7.8*1;
x = 78 (у.е.);
После удаления лома она поднимется на одну десятую своего объёма — 7.8 у.е.
А лом вытеснит 1 у.е. Соответствено общий объём водоизмещения упадёт на 6.8. После таяния льда он займёт столько же объёма, сколько занимал в свободном плавании, и 6.8 окончательная величина. Уровень воды упадёт строго на (примем площадь поверхности водоёма за очень условную еденицу) delta_h = -6.8 (у.е./о.у.е.)
Мне кажется, что если убрать весь лишний лёд (которій никак не повлияет на уровень), и оставить полностью утопленую «подушку» которой хватает ровно на то чтобы держать лом, то она будет объёмом:
(7.8/0.9)/(1-0.9)=86.(6)
Вытесненная вода весит 1*х
Лёд весит 0.9*х, а ещё вес лома 7.8*1
уравнение х = 0.9х + 7.8
х — 0.9х = 7.8
(1 — 0.9)х = 7.8
х = 7.8/(1 — 0.9) = 7.8/0.1 = 78
Если вдруг его больше этого количества — мы можем обрезать лишний лёд до тех условий которые я описал, никак не повлияв на результ. 78 у.е. льда под водой и лом на них — опустят уровень воды после таяния ровно на столько же, насколько айсберг в 1000078 у.е. льда и лом на нём.
Если лом заменить на такой же по массе лёд, то количество подводного льда не изменится никак, посольку вес не возрастёт.
Когда догорит 1 (пройдет ровно 30 мин) поджигаем второй с другого конца, оставшаяся «половина» сгорит за (30/2 = 15мин) нужное время.
Есть бассейн. В нём плавает воздушный шарик. Отмечен текущий уровень воды. Ещё в бассейн забросили якорь. В каком случае уровень воды в бассейне поднимется больше: если якорь связан с шариком, или если якорь НЕ связан с шариком? Длиной связи пренебречь.
Поджигаем первый шнур с обеих концов. Когда догорел (прошло 30 мин) второй разрезаем пополам и поджигаем обе части с обеих концов одновременно. Когда сгорел последний из этих двух кусков — прошло 15 минут. Итого 45. П.С. Но это неточно)
Про шнуры. Поджигаем один шнур с обоих концов и одновременно второй шнур с одного конца. Когда встретятся огоньки на первом это 30 мин. В этот момент поджигаем второй шнур со второго конца. Когда встретятся огоньки на нем это будет еще 15 мин) милая задачка
Есть мост, выдерживающий не более двух человек одновременно. По мосту можно идти, только держа в руке фонарик. На одной стороне моста стоят 4 человека с одним фонариком. Скорость движения у людей разная: 1 минута на переход, 2 минуты на переход, 5 минут на переход, 10 минут на переход. За какое минимальное время люди перейдут на другую сторону моста?
адачи встречал в книге 《Как сдвинуть гору Фудзи》 Поудсон кажется автор, лет 10 назад читал. Эти задачи в 80-е использовались на собеседованиях в Майкрасофт. Первые 3задачи достаточно простые, не буду на них тратить время. А вот 4задача сложнее чем кажется. Многие сходу дают ответ — Южный полюс.Этот ответ хоть и правильный, но неполный. До середины 50-х ответ на эту задачу 《Южный полюс》считался единственно верным, пока один математик не показал еще множество вариантов.
Правильный ответ:
Бесконечность умноженная на бесконечность плюс один.
Теперь подробнее:
Понятно, что +1 это как раз точка Южный полюс.А остальные точки находятся в северном полушарии около северного полюса:
Очевидно, что есть широта (в высрких широтах) длина окружности которой равна 100км.Назовем ее широта100км Таким образом если мы находясь в точке А в 100км южнее от такой широты 《широта сокружностью 100км》совершим поход как указано в задаче на 100км на север мы окажемся в точке Б на этой широте, далее пройдя по кругу 100км на восток мы опять окажемся в точке Б откуда пройдя на юг 100км мы окажемся в точке А.
Таких точек на 100км южнее 《широты сокружностью 100км》 бесконечное множество все точки южнее на 100км 《широты с окружностью 100км》. Это первое бесконечное множество.Второе множество бесконечностей связано с тем, что поход из точки Б на восток на 100км с возвратом в точку Б можно не только по 《широте с окружностью100км》 это можно заменить дважды по кругу обойдя 《широту с окружностью 50км》, трижды обойдя 《широту 33.33....333км》, четырежды 《широту25км》 и так до бесконечности.
Интересные логические задачки на собеседованиях