Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2014, 13:09   #1
SinimaWath
Новичок
Джуниор
 
Регистрация: 03.10.2014
Сообщений: 8
По умолчанию Новичок, подскажите как делать задание.

Я не прошу писать решение, хотя бы пожалуйста подскажите, а то я даже не понимаю как это вообше делать:

Имеется N монет, не различимых на первый взгляд. Однако, одна из них фальшивая. Фальшивая монета чуть тяжелее, чем настоящая, но во всем остальном полностью идентична настоящим. Кроме того, есть чашечные весы без гирь и шкалы (по таким весам, можно определить, какая чаша тяжелее или легче, но нельзя сказать на сколько). Найти минимальное количество взвешиваний, за которое можно гарантированно определить фальшивку.

Входные данные

Входной файл INPUT.TXT содержит одно натуральное число N – количество монет (2<=N<=109).

Выходные данные

В выходной файл OUTPUT.TXT выведите минимальное количество взвешиваний.

Примеры

№ INPUT.TXT OUTPUT.TXT
1 2 1
2 3 1
SinimaWath вне форума Ответить с цитированием
Старый 04.10.2014, 13:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тут кажись метод бинарного поиска применяется.
Т.е. кол-во монет делится на два. Потом половина ее на два, потом половина половина на два... и так пока не останется две монеты. Вот кол-во таких дележей и будет ответом.
Это если я правильно помню. Задача бородатая, мы ее еще в 98-х раскусывали в школе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.10.2014, 13:21   #3
SinimaWath
Новичок
Джуниор
 
Регистрация: 03.10.2014
Сообщений: 8
По умолчанию

спасибо, я сделал через div:
Код:
b:=a div 2
SinimaWath вне форума Ответить с цитированием
Старый 04.10.2014, 13:42   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сообщение от SinimaWath Посмотреть сообщение
спасибо, я сделал через div:
Код:
b:=a div 2
И это непрально..
10 монет..
Спорим, что я смогу определить за 3 взвешивания?
Poma][a вне форума Ответить с цитированием
Старый 04.10.2014, 13:53   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Я не прошу писать решение, хотя бы пожалуйста подскажите, а то я даже не понимаю как это вообше делать
А зачем ты вообще берёшься за выполнение этих заданий, если не понимаешь нихрена? Тебя заставляет кто? Ты в заложниках у боевиков террористической организации типа "Мученники Паскаля" или "Воинствущие девственицы С++"? Тебя пытают медленным диал-ап-интернетом и безалкогольным пивом?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.10.2014, 13:56   #6
SinimaWath
Новичок
Джуниор
 
Регистрация: 03.10.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
И это непрально..
10 монет..
Спорим, что я смогу определить за 3 взвешивания?
Кстати это правильно, сайт с заданиями это принял.
SinimaWath вне форума Ответить с цитированием
Старый 04.10.2014, 15:27   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сайт с заданиями это принял.
Какой неправильный сайт ) И дает неправильны мед
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не понимаю как делать задание rostik123 Общие вопросы C/C++ 4 29.10.2011 02:19
Задание программы на Си. Как ее делать? Montana020192 Помощь студентам 1 21.03.2010 21:04
подскажите что делать. __k1ll3r__ Компьютерное железо 4 23.02.2008 12:54