Другие языки программирования и технологии

Задачка для умеющих шевелить мозгами. (Программистов я вообще считаю самыми умными)

Есть 12 шаров! Из них одни аномальный (по весу) либо легче, либо тяжелее (неизвестно). Нужно за 3 взвешивания определить тот шар, который аномальный. Весы в момент взвешивания могут находиться в 3-х состояниях. Больше, меньше, равно.
первое взвешивание - 6 на 6 шаров (одна партия явно будет легче)
второе взвешивание - 3 на 3 шара (из "тяжелой" партии) какие-то 3 шара будут тяжелее
третье взвешивание - 1 на 1 шар (явно будет видно, какой тяжелее) . Если весы останутся в равновесии - самый тяжелый - оставшийся шар
А я в программировании - ни бум-бум...
Витя Авдеев
Витя Авдеев
61 001
Лучший ответ
Валерий Горшенёв Мля, Вам крупно повезло что я промазал по кнопочке и выбрал Ваш ответ лучшим. Хочу намекнуть Вам на то что тяжелее или легче шарик заранее неизвестно. А вы выбираете именно тяжелые, это в корне неверно
взвесить по 6 шаров, по три и по 1
Валерий Горшенёв Не взвесишь по 6 шаров, одна сторона весов перевесит. Какую из них оставлять для дальнейшего взвешивания ? Ведь неизвестно тяжелее или легче аномальный.
а интереснее решить ее когда 13 шаров и 3 взыешивания
Макс Иванов
Макс Иванов
97 398
Валерий Горшенёв Ах ты какой. Нагуглил таки правильный ответ ? При 13 шариках мы можем его выделить, но не можем узнать легче он или тяжелее.
------
Весы в момент взвешивания могут находиться в 3-х состояниях.
Больше, меньше, равно.
-------

Чего именно?

вот я поставил шар он мне показывает БОЛЬШЕ вот и вопрос больше чего ???
Валерий Горшенёв Его вес больше того что находится на второй чашечке.
Валерий Горшенёв

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

Если они просто показывают вес (больше/меньше/равно) или на них 2 платформы и они сравнивают вес одного тела с весом другого тела. Как я понимаю от этого прямым образом зависит и количество доступных взвешиваний.
Валерий Горшенёв Да вот такие весы:


Неужто тут трудно понять что они не показывают вес стрелкой, а просто имеют 2 чашечки и показывают какая из них тяжелее.
ты сам то ответ знаешь?
Валерий Горшенёв Да знаю. Но к сож. сам до него не допер, просто прочитал солюшн.
блин, пробую взвесить по 5шаров, два остаются ...задачка на целый день.... но ответ зайду прочитать.
1 взвешивание: по 6 шаров на чашку
2 взвешивание: шары с аномальной чашки - по 3 шт. на чашку
3 взвешивание: шары с аномальной чашки - по одному на чашку, если равны - третий шар аномален, если нет то и так ясно какой! , только должно быть известно аномальный шар легче или тяжелее, иначе потребуется 2 дополнительных взвешивания.
этот метод называется - метод пузырьковой сортировки.
Валерий Горшенёв А вот и нед, по условию неизвестно тяжелее он или нед !!!

Вы двигаетесь логически, но этот путь неверен. Могу подсказать наиболее эффективный логический ход:

1 взвешивание по 3 шарика на чашку. Если есть перевес то наш, аномальный шарик во взвешиваемой группе. Если чашечки уровнялись то аномальный шарик в остальных 6-ти. !!
!!!Первым ходом мы отсеяли половину шариков. !!Но и этот шаг неверен, соболезную.
Всё просто если использовать алгоритм иф зен если и разбивать на три кучки то можно определить путем отсеивание и решение будет такое
Делим на три части по 4 шары: (1 2 3 4) (5 6 7 8 ) (9 10 11 12)
1. Взвешиваем первые две группы (1 2 3 4) и (5 6 7 8)
Если они равны, то искомый шар точно в третьей группе.
2. Взвешиваем шары по два (9 10) и (1 12) - тут шар 1 точно не искомый. Если они равны, то искомый шар 12. Если нет, то запоминаем состояние весов (тяжелее/легче) .
3. Взвешиваем шары (9 10). Если они равны, то искомый шар 11.
Если состояние весов не изменилось, то искомый шар 9. Если состояние весов изменилось, то искомый 10.

Если после первого взвешивания группы разного веса, то запоминаем состояние весов.
2. Взвешиваем по три шара (1 2 5) и (3 6 12). Если они равны, то шар 4 или 8 искомый. Шар 12 точно не искомый.
3. Взвешиваем шары (4 12). Если равны, то искомый шар 8. Если нет, то искомый шар 4. Finish.

Если состояние весов изменилось после второго взвешивания, то искомый шар 3 или 5.
3. Взвешиваем (3 12) получаем решение. Равны - искомый 5, неравны - искомый 3.
3. Если состояние не изменилось, то взвешиваем шары (1 12). Если равны - искомый 2, если нет - искомый 1.
Шохин Джураев
Шохин Джураев
1 743
Валерий Горшенёв Допустим шарик 7 аномальный, как он выявится по вашему алгоритму ?
Евгений Евгений абсолютно верное решение. В пятницу муж меня доставал с аналогичной задачей, только в ней были 9 монет одинаковой величины, а одна чуть меньше по весу. Даны медицинские весы и за 3 взвешивания необходимо было найти меньшую монетку.
Андрей Киселёв Молодец, если сам додумался.
Сначала взвешиваем 2-е кучки по шесть шаров, ту кучку, что легче делим пополам и взвешиваем по три шариа, после этого из кучки которая легче выбираем два шарика взвешиваем, возможно 2 исхода:
1) Один из них будет легче и значит это он бракованный
2) Они будут равны по весу, следовательно бракованый третий шар
Валерий Горшенёв Почему Вы считаете что после 2-го взвешивания выделиться легкий шар и он аномальный ???По условию неизвестно легче он или тяжелее остальных.
Владимир Радев Так не известно легче или тяжелее бракованный шар?
Решение задачи. Нанимаем программиста.
AC
Alexander Chanov
264
Валерий Горшенёв Легенда:
Тех, кто решал эту задачу менее чем за 2 часа брали работать на Лондонскую биржу.

Похожие вопросы