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

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

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

> Задачка про игру, логика
-Ромка-
сообщение 11.04.2006 13:35
Сообщение #1


Гость






Однажды два математика придумали математическую игру и решили в нее сыграть. Они попросили постороннего человека написать на разных листах бумаги два натуральных числа, причем одно должно быть больше другого ровно в 2 раза. Затем один математик взял один лист, а второй взял оставшийся. В чужие листы они не заглядывали и единственное, что знал каждый из них – на другом листе записано число либо в 2 раза большее, либо в 2 раза меньшее, чем у него. Затем началась игра. Игра заключается в том, что игроки по очереди отвечают на вопрос, знают ли они, какое число записано на листе соперника, до тех пор, пока один из них не сможет назвать это число. В процессе игры игроки всегда учитывают всю информацию, которую им дает ответ соперника, и говорят только правду.

Нужно вывести на каком ходе будет получен правильныей ответ. Ответ явно связан со степенью двойки "входящей в число". Пример числа 8 и 16 ответ 5. Числа 4 и 2 ответ 2.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Романтик
сообщение 11.04.2006 20:17
Сообщение #2


Бывалый
***

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

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


Цитата(-Ромка- @ 11.04.2006 14:35) *

Нужно вывести на каком ходе будет получен правильныей ответ. Ответ явно связан со степенью двойки "входящей в число". ????Пример числа 8 и 16 ответ 5. Числа 4 и 2 ответ 2.????

Нужны комментарии.
p.S опоздал с вопросом. smile.gif

Сообщение отредактировано: Романтик - 11.04.2006 20:18


--------------------
made in USSR.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
-Ромка-
сообщение 11.04.2006 21:16
Сообщение #3


Гость






Цитата
то есть как?
они сидят:
-ты знаешь, какое у меня число?
-нет, а ты про мое?
-нет, а ты про мое?

Да. Например, 4 и 2 -первый сразу не знает. Второй думает: "У 1-го может быть 1 или 4. Но если у него 1, то он сразу сказал бы "знаю", так как у меня не может быть 1/2. => у него 4". Т.е. игра -
1-й. Я не знаю (1 ход)
2-й. Я знаю - 2 (2 ход)
 К началу страницы 
+ Ответить 
Malice
сообщение 11.04.2006 21:44
Сообщение #4


Профи
****

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

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


У меня вот так получилось:
function check(a,b:integer):integer;
var i:integer;
begin
if (a xor b) and 1=1 then check:=1 {типа, а чего тут думать - и так все очевидно} else begin
i:=0;
while ((a and 1)=0) do begin
a:=a shr 1; inc (i);
b:=b+a; a:=b-a; b:=b-a;
end;
check:=i-1;
end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 20.06.2025 18:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"