Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм   Найти похожие ветки 

 
Боян Георгиев   (2003-12-25 15:32) [0]

Здравствуйте мастера!
Помогните мне решит следную задачку:
var
Bits: array of boolean;

Известно началное состояние массива:
0 1 0 1 0(0 значит false, 1 значит true);

Данны процедуры:


procedure ChangeBits_1_2_3;
begin
Bits[1] := not Bits[1];
Bits[2] := not Bits[2];
Bits[3] := not Bits[3];
end;

procedure ChangeBits_1_5;
begin
...
end;

procedure ChangeBits_3_4_5;
procedure ChangeBits_4_5;


Програма надо използувать данных процедур в такой последовательности, чтобы получить в массиве Bits комбинацию
1 0 1 1 1

Я буду благодарный всему, кто подскажет мне быстрый алгоритм для нахождение подходущую последовательностю.
PS: Извините мне если я допустил ошибки в тексте:) Я болгарин


 
Новичек   (2003-12-25 15:36) [1]

чтото не вкурил что ты хочешь!
Ты хочешь узнать какие биты тебе надо инвертировать, чтобы получить последовательность 1 0 1 1 1
или что?


 
Тимохов   (2003-12-25 15:39) [2]

Это смахивает на задачку из учебника.
Лабы надо делать самому. ИМХО.


 
Palladin   (2003-12-25 15:42) [3]


> Боян Георгиев (25.12.03 15:32)

Задача определить составить алгоритм нахождения этой последовательности, или же самому найти последовательность и написать программу?


 
TUser   (2003-12-25 15:47) [4]

Задача у него - составить алгоритм из имеющихся процедур.


 
Боян Георгиев   (2003-12-25 15:54) [5]

Palladin © (25.12.03 15:42) [3]

> Боян Георгиев (25.12.03 15:32)

Задача определить составить алгоритм нахождения этой последовательности, или же самому найти последовательность и написать программу?

В задачу надо изпользоват толко данных процедуров чтобы из комбинации 0 1 0 1 0 получить 1 0 1 1 1.

Тимохов © (25.12.03 15:39) [2]
Это смахивает на задачку из учебника.
Лабы надо делать самому. ИМХО.

Задача нет из учебника:)
Задача из конкурса.
Если знаеш болгарский, можеш прочитать условие на сайте
http://konkurs.musala.com/2003_04/problem3/task.rtf


 
TUser   (2003-12-25 16:18) [6]

Кстати, что-то по-болгарски понятно.
"Напишите програма която определя ако е възможно ... "


 
Новичек   (2003-12-25 16:18) [7]

ответ НИКАК

С помощью тех процедур что ты написал - НИКАК невозможно!

Или ты их неправильно написал или действительно невозможно!


 
jack128   (2003-12-25 16:26) [8]


> ответ НИКАК

Док-во
Бит 2можно изменить только с помощью ChangeBits_1_2_3 - значит эту процедуры нужно/можно использовать Нечетное число раз. Это приведет к тому что биты 1/2/3 встанут в нужное положение -> ChangeBits_3_4_5 можно использовать только четное число раз (но это бессмыслено так не изменит положение бита 5). Остается ChangeBits_4_5 но нам нужно исменить бит 5 НЕ миняя бит 4 а это невозможно. ЧТД.


 
Новичек   (2003-12-25 16:28) [9]


> jack128


Я думаю он сам, взяв чистый листок бумаги, рассписал ето и понял что здесь чтото не так! :-)


 
MBo   (2003-12-25 16:33) [10]

обозначим
procedure ChangeBits_1_2_3 = A
procedure ChangeBits_1_5 = B
procedure ChangeBits_3_4_5 = C
procedure ChangeBits_4_5 = D

биты 1,2,3,5 в данной последовательности нужно поменять нечетное число раз, а 4- четное число раз (N mod 2 =0)

пусть процедура A применена а раз, B-b, C - c, D-d раз

тогда
для Bit[1]
(A+B) mod 2=1
для 2
A mod 2=1 => B mod 2=0
для 3
(A+С) mod 2=1 => C mod 2=0
для 4
(С+D) mod 2=0 => D mod 2=0
для 5
(B+C+D) mod 2=1 - невозможно!!!!

система из 5 диофантовых уравнений с 4 неизвестными - несовместна, т.е. решения при таком наборе процедур для перехода
0 1 0 1 0 -> 1 0 1 1 1
не существует



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
6-25495
Dunmer
2003-11-10 14:23
2004.01.09
Как оптимизировать Ресолв ДНС


1-25378
_hunter_
2003-12-25 11:03
2004.01.09
создание компонент


1-25324
AndrewK
2003-12-22 14:50
2004.01.09
Как в TVirtualStringTree создать структуру?


6-25476
Anarki
2003-11-07 23:58
2004.01.09
Проблема с idSMTP


4-25669
reef
2003-11-07 16:32
2004.01.09
WriteFile и 1Mb массив





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский