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 ] 

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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