IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите решить задачу с монетками
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Помогите решить задачу:

12 монет. Известен способ, как за три взвешивания на весах без гирь среди 12 монет найти фальшивую (отличающуюся от остальных по весу в неизвестную сторону). Для этого при каждом взвешивании на чаши весов нужно класть по 4 монеты. Реализовать такую идентификацию: человек загадывает номер фальшивой монеты и ее особенность (легче или тяжелее других). ЭВМ организует взвешивание, спрашивает, куда отклонилась стрелка весов при каждом опыте, и находит номер фальшивой монеты
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, так ты же знаешь алгоритм... Проблема с реализацией?
Насколько я понимаю, тройной If ... Then ... Else - вот и вся программа...

Что именно проблематично?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Как раз с реализацией проблемы.

У меня она что-то слишком громоздкой получается.
Переменных много.

Можете подсказать фрагмент основного кода реализации.
А остальное надеюсь допишу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
У меня она что-то слишком громоздкой получается.
Вот и приведи то, что у тебя получается...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


А что является одним испытанием, когда замер происходит в момент нахождения монет и на правой чаше и на левой ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(klem4 @ 26.02.2006 21:04) *

А что является одним испытанием, когда замер происходит в момент нахождения монет и на правой чаше и на левой ?

Примерно так:

Входные данные (показываются программой на мониторе, три раза за игру):
- На левой чашке: монеты 1, 2, 5, 12
- На правой: 3, 4, 8, 10
(циферки я написал от балды)

Возможные варианты ответов (игрок отвечает, исходя из того, что он задумал: номер фальшивой монеты и тяжелее она или легче) :
- левая тяжелее
- левая легче
- одинаково

Алгоритм (который автор любезно опустил) весьма непростой. Прежде всего надо определиться с ним. Возможно также, что существует не один алгоритм. Поскольку задача размещена не в Математике, а в Задачах (на Паскале!), то нужно попросить автора темы выложить тут подробное описание алгоритма. И уже по нему делать прогу.. Верно?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






lapp, ты меня извини, но не надо раздувать из мухи слона!
Цитата
Алгоритм (который автор любезно опустил) весьма непростой
Уж куда там... 3 строчки - это уникальный просто по сложности алгоритм... dry.gif

И,
Цитата
Поскольку задача размещена не в Математике, а в Задачах (на Паскале!)
, все дальнейшие рассуждения по поводу сложности алгоритма будут считаться флудом. Я тебя уже предупреждал, кажется? Есть, что сказать по теме - Yor Are Welcome, иначе, извини, I'll have to pull rank!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 28.02.2006 15:24) *

lapp, ты меня извини, но не надо раздувать из мухи слона!
Уж куда там... 3 строчки - это уникальный просто по сложности алгоритм... dry.gif

Volvo, ты прав, сложность алгритма тут абсолютно ни при чем.
Да и сам алгоритм тут тоже абсолютно ни при чем.
По некотором размышлении набросал программу-рыбу.
Строчки заполнить нужной информацией..
Конечно, она не оптимальная.. строки зря тратит..
Некоторые комбинации, видимо, не осуществляются (27 строк на 24 ответа).

uses
CRT;

const
cL='l';
cE='e';
cR='r';

type
tAnswer = (N,L,E,R);

var
i:integer;
c:char;
S:array[1..3,L..R,L..R]of string;
F:array[L..R,L..R,L..R]of string;

const
A:array[1..3]of tAnswer=(N,N,N);

begin
S[1,N,N]:='Left: , Right: . What is heavier?';
S[2,L,N]:='Left: , Right: . What is heavier?';
S[2,E,N]:='Left: , Right: . What is heavier?';
S[2,R,N]:='Left: , Right: . What is heavier?';
S[3,L,L]:='Left: , Right: . What is heavier?';
S[3,L,E]:='Left: , Right: . What is heavier?';
S[3,L,R]:='Left: , Right: . What is heavier?';
S[3,E,L]:='Left: , Right: . What is heavier?';
S[3,E,E]:='Left: , Right: . What is heavier?';
S[3,E,R]:='Left: , Right: . What is heavier?';
S[3,R,L]:='Left: , Right: . What is heavier?';
S[3,R,E]:='Left: , Right: . What is heavier?';
S[3,R,R]:='Left: , Right: . What is heavier?';
F[L,L,L]:='False coin is #.. It is ..';
F[L,L,E]:='False coin is #.. It is ..';
F[L,L,R]:='False coin is #.. It is ..';
F[L,E,L]:='False coin is #.. It is ..';
F[L,E,E]:='False coin is #.. It is ..';
F[L,E,R]:='False coin is #.. It is ..';
F[L,R,L]:='False coin is #.. It is ..';
F[L,R,E]:='False coin is #.. It is ..';
F[L,R,R]:='False coin is #.. It is ..';
F[E,L,L]:='False coin is #.. It is ..';
F[E,L,E]:='False coin is #.. It is ..';
F[E,L,R]:='False coin is #.. It is ..';
F[E,E,L]:='False coin is #.. It is ..';
F[E,E,E]:='False coin is #.. It is ..';
F[E,E,R]:='False coin is #.. It is ..';
F[E,R,L]:='False coin is #.. It is ..';
F[E,R,E]:='False coin is #.. It is ..';
F[E,R,R]:='False coin is #.. It is ..';
F[R,L,L]:='False coin is #.. It is ..';
F[R,L,E]:='False coin is #.. It is ..';
F[R,L,R]:='False coin is #.. It is ..';
F[R,E,L]:='False coin is #.. It is ..';
F[R,E,E]:='False coin is #.. It is ..';
F[R,E,R]:='False coin is #.. It is ..';
F[R,R,L]:='False coin is #.. It is ..';
F[R,R,E]:='False coin is #.. It is ..';
F[R,R,R]:='False coin is #.. It is ..';
for i:=1 to 3 do begin
WriteLn(S[i,A[1],A[2]]);
repeat
c:=ReadKey;
case c of
cL:A[i]:=L;
cE:A[i]:=E;
cR:A[i]:=R;
end;
until A[i] in [L,E,R];
end;
WriteLn(F[A[1],A[2],A[3]])
end.



Сообщение отредактировано: lapp -


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 22:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name