2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 восстановить действие программы
Сообщение26.09.2011, 12:29 


26/09/11
4
В ЭВМ заложена программа, в соответствии с которой любой набор из 10 символов переставляется в определенном порядке, одном и том же для всех наборов. Какое наименьшее число наборов из нулей и единиц нужно составить, чтобы по результатам работы с ними ЭВМ можно было бы однозначно восстановить действие программы? Что это за наборы?

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение26.09.2011, 12:56 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Ой, 10 - это очень много, далеко за пределами человеческих возможностей. Давайте будет 2. Вот наборы из 2 символов. С ними всё понятно?

-- Пн, 2011-09-26, 13:58 --

Ах, мы не в разделе "помогите решить". Тогда так. Вот 10 наборов: у каждого одна единица (у всех в разной позиции), остальные нули. Этого точно хватит. Теперь подумаем, можно ли меньше.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение26.09.2011, 13:17 


26/09/11
4
ИСН в сообщении #486542 писал(а):
Ой, 10 - это очень много, далеко за пределами человеческих возможностей. Давайте будет 2. Вот наборы из 2 символов. С ними всё понятно?

-- Пн, 2011-09-26, 13:58 --

Ах, мы не в разделе "помогите решить". Тогда так. Вот 10 наборов: у каждого одна единица (у всех в разной позиции), остальные нули. Этого точно хватит. Теперь подумаем, можно ли меньше.

Конечно, можно :D

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение26.09.2011, 14:08 


26/08/11
2109
Четыре должно хватить (даже за 16). Записываем в двоичном виде числа от 1 до 10
0001 - 1
0010 - 2
.......
1010 - 10
В колоннах будут наши ключи. Подаем их последовательно на вход. На выходе получим их номера в двоичном виде.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение26.09.2011, 16:53 


26/09/11
4
Shadow в сообщении #486563 писал(а):
Четыре должно хватить (даже за 16). Записываем в двоичном виде числа от 1 до 10
0001 - 1
0010 - 2
.......
1010 - 10
В колоннах будут наши ключи. Подаем их последовательно на вход. На выходе получим их номера в двоичном виде.

Необходимо еще доказать, что трех не достаточно.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 11:10 
Заслуженный участник
Аватара пользователя


23/08/07
5500
Нов-ск
lenamizd в сообщении #486601 писал(а):
Необходимо еще доказать, что трех не достаточно.
Если попыток всего три, то найдутся два разряда, в которых цифры одинаково меняются от попытки к попытке, так что невозможно будет знать, в себя отображаются эти разряды или друг в друга.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 11:29 


26/08/11
2109
TOTAL в сообщении #486776 писал(а):
Если попыток всего три, то найдутся два разряда, в которых цифры одинаково меняются от попытки к попытке, так что невозможно будет знать, в себя отображаются ти разряды или друг в друга.

Но это так только если принять, что наш алгоритм оптимален. Вообще надо доказать, что n попытками можно однозначно определить не больше $2^n$ элементов.
Класический вариант этой задачи:
В одной комнате есть 1000 ключей, включающих 1000 лампочек в другой комнате. Какое минимальное число прогулок между комнат для однозначного определения какой ключ с какой лампочкой связан.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 12:00 
Заслуженный участник
Аватара пользователя


23/08/07
5500
Нов-ск
Shadow в сообщении #486780 писал(а):
TOTAL в сообщении #486776 писал(а):
Если попыток всего три, то найдутся два разряда, в которых цифры одинаково меняются от попытки к попытке, так что невозможно будет знать, в себя отображаются ти разряды или друг в друга.

Но это так только если принять, что наш алгоритм оптимален.

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

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 12:37 


26/08/11
2109
Сейчас Вас понял. После первой попытки будут хотя бы 5 одинаковых бита. Если рассматривать толко их, после второй будут хотя бы 3 одинаковых, после третьей - хотя бы 2. Т.е хотя бы 2 элемента отобразатся одинаково

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 12:51 
Заслуженный участник
Аватара пользователя


23/08/07
5500
Нов-ск
Shadow в сообщении #486792 писал(а):
Сейчас Вас понял. После первой попытки будут хотя бы 5 одинаковых бита.
Совсем не то.
Запишите каждую из попыток одну за другой как столбец из 0 и 1. Обязательно найдутся две одинаковых строки. Например, первая строка и вторая. Отображение может быть таким, что первый элемент переходит в первый, а второй во второй. Но может быть и таким, что первый элемент переходит во второй, а второй в первый. Отличить невозможно.

 Профиль  
                  
 
 Re: восстановить действие программы
Сообщение27.09.2011, 13:20 


26/08/11
2109
Цитата:
Совсем не то..

Как раз то.
Цитата:
Обязательно найдутся две одинаковых строки.

Я объяснил почему найдутся.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Shadow


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group