Помогите решить задачу с монетками |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите решить задачу с монетками |
Zeratull |
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Помогите решить задачу:
12 монет. Известен способ, как за три взвешивания на весах без гирь среди 12 монет найти фальшивую (отличающуюся от остальных по весу в неизвестную сторону). Для этого при каждом взвешивании на чаши весов нужно класть по 4 монеты. Реализовать такую идентификацию: человек загадывает номер фальшивой монеты и ее особенность (легче или тяжелее других). ЭВМ организует взвешивание, спрашивает, куда отклонилась стрелка весов при каждом опыте, и находит номер фальшивой монеты |
volvo |
Сообщение
#2
|
Гость |
Ну, так ты же знаешь алгоритм... Проблема с реализацией?
Насколько я понимаю, тройной If ... Then ... Else - вот и вся программа... Что именно проблематично? |
Zeratull |
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Как раз с реализацией проблемы.
У меня она что-то слишком громоздкой получается. Переменных много. Можете подсказать фрагмент основного кода реализации. А остальное надеюсь допишу. |
volvo |
Сообщение
#4
|
Гость |
Цитата У меня она что-то слишком громоздкой получается. Вот и приведи то, что у тебя получается... |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
А что является одним испытанием, когда замер происходит в момент нахождения монет и на правой чаше и на левой ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lapp |
Сообщение
#6
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
А что является одним испытанием, когда замер происходит в момент нахождения монет и на правой чаше и на левой ? Примерно так: Входные данные (показываются программой на мониторе, три раза за игру): - На левой чашке: монеты 1, 2, 5, 12 - На правой: 3, 4, 8, 10 (циферки я написал от балды) Возможные варианты ответов (игрок отвечает, исходя из того, что он задумал: номер фальшивой монеты и тяжелее она или легче) : - левая тяжелее - левая легче - одинаково Алгоритм (который автор любезно опустил) весьма непростой. Прежде всего надо определиться с ним. Возможно также, что существует не один алгоритм. Поскольку задача размещена не в Математике, а в Задачах (на Паскале!), то нужно попросить автора темы выложить тут подробное описание алгоритма. И уже по нему делать прогу.. Верно? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#7
|
Гость |
lapp, ты меня извини, но не надо раздувать из мухи слона!
Цитата Алгоритм (который автор любезно опустил) весьма непростой Уж куда там... 3 строчки - это уникальный просто по сложности алгоритм... И, Цитата Поскольку задача размещена не в Математике, а в Задачах (на Паскале!) , все дальнейшие рассуждения по поводу сложности алгоритма будут считаться флудом. Я тебя уже предупреждал, кажется? Есть, что сказать по теме - Yor Are Welcome, иначе, извини, I'll have to pull rank! |
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
lapp, ты меня извини, но не надо раздувать из мухи слона! Уж куда там... 3 строчки - это уникальный просто по сложности алгоритм... Volvo, ты прав, сложность алгритма тут абсолютно ни при чем. Да и сам алгоритм тут тоже абсолютно ни при чем. По некотором размышлении набросал программу-рыбу. Строчки заполнить нужной информацией.. Конечно, она не оптимальная.. строки зря тратит.. Некоторые комбинации, видимо, не осуществляются (27 строк на 24 ответа).
Сообщение отредактировано: lapp - -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Zeratull |
Сообщение
#9
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
lapp
огромное спасибо. попробую разобраться с прогой. На одном форуме видел предлагали такое теоретическое решение задачи: Ссылка: http://diesel.elcat.kg/index.php?showtopic=181464# Решение в 3 взвешивания ! ! ! Положение чаш весов будут показаны как = , > или < --------------------------------------------- 1. --- Если (1,2,3,4) = (5,6,7,8) то 1,,,8,9,10,11,12 2. --- (9) = (10) то 9,10,11,12, 3. --- (11) = (9) то 11,12 --- 3. --- (11) <> (9) то 12,11 ------------------- 9,10,11,12 2. --- (9) <> (10) то 11,12,9,10 3. --- (11) = (9) то 9,10 --- 3. --- (11) <> (9) то 109 -------------------------------------------- 1. --- (1,2,3,4) > (5,6,7,8) то 9,,,12,1,,,8 2. --- (1,2,5) = (3,4,9) то 1,,,5,6,7,8 3. --- (6) = (7) то 6,7,8 --- 3. --- (6) > (7) то 6 --- 3. --- (6) < (7) то 7 ------------------ 2. --- (1,2,5) > (3,4,9) то 1,2 3. --- (1) = (9) то 2 --- 3. --- (1) <> (9) то 1 ----------------- 2. --- (1,2,5) < (3,4,9) то 3,4,5 так как чаши весов теперь склонились в другую сторону, нежели при 1-м взвешивании. 3. --- (3,5) = (9,10) то 4 --- 3. --- (3,5) > (9,10) то 3 по результату предыдущего взвешивания --- 3. --- (3,5) < (9,10) то 5 |
Текстовая версия | 12.01.2025 13:22 |