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

Вниз

Задачка мастерам от новичка :)   Найти похожие ветки 

 
esu   (2002-04-22 16:56) [0]

Предположим у нас есть некая матрица 2n на 2n каждый елемент которой может быть заполнен единицей или нулем.
1011
1101
0010
0110
над этой матрицей можно проводить сдедующие операции. Грубо говоря кликнув на елемент с координатами 3,1 матрица преобразуется в такую
1001
0010
0000
0100
Тоесть все елементы которые находятся справа, слева, сверху и снизу заданного подвергаются операции "не".
Ну и 2 задачи по этому поводу
Задача для игроков:
все елементы должны иметь значение 1.
Задача для математиков:
Найти простой алгоритм для решения и подумать какой же математикой тут пахнет.

Алгоритмы и решения прошу писать сюда или на esu@barco.kiev.ua, если нитерестно посмотреть как это выглядит то я написал игрушку которую можно скачать тут: http://esu.bigmir.net/task.raar (переименуйте в рар и заархивируйте, написана на D6, исходники прилагаются, претензии к коду приветствуются)


 
VictorT   (2002-04-22 17:19) [1]

А была такая игрушка фирмы 1С, известной сейчас на несколько другом поприще, про братьев Пилотов (мультфильм "Следствие ведут Колобки"), так там надо было решить такую головоломку, чтобы открыть холодильник... Очень долго долбался...


 
MBo   (2002-04-22 17:38) [2]

N:integer=4;

implementation

{$R *.DFM}

//заполнение
procedure TForm1.Button1Click(Sender: TObject);
var
r,c:integer;
begin
StringGrid1.ColCount:=2*N;
StringGrid1.RowCount:=2*N;
for c:=0 to StringGrid1.ColCount-1 do
for r:=0 to StringGrid1.RowCount-1 do
StringGrid1.Cells[c,r]:=inttostr(random(2));
end;


//ручная тренировка ;)
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var r,c,r1,c1,q,sum:integer;
begin
with stringgrid1 do
for c1:=0 to ColCount-1 do
for r1:=0 to RowCount-1 do begin
if ( c1=acol) or (r1=arow) then
Cells[c1,r1]:=IntToStr(1-StrToInt(Cells[c1,r1]));
end;
end;


//пошаговый прогон
procedure TForm1.Button2Click(Sender: TObject);
var
r,c,r1,c1,q,sum:integer;
begin
with Stringgrid1 do begin
sum:=0;
for c:=0 to ColCount-1 do
for r:=0 to RowCount-1 do begin
q:=strtoint(Cells[c,r]);
Objects[c,r]:=pointer(q);
sum:=sum+q;
end;
if sum=Sqr(2*N) then Exit;
for c:=0 to ColCount-1 do
for r:=0 to RowCount-1 do begin
q:=Integer(Objects[c,r]);
if q=0 then
for c1:=0 to ColCount-1 do
for r1:=0 to RowCount-1 do begin
if (c1=c) or (r1=r) then
Cells[c1,r1]:=IntToStr(1-StrToInt(Cells[c1,r1]));
end;
end;
end;
end;


 
VictorT   (2002-04-22 18:09) [3]

MBo © (22.04.02 17:38)
Вот спасибочки. Уже опробовал. Я иногда, где-то раз в месяц, люблю в упомянутую игрушку поиграть и каждый раз на этой головоломке застреваю.


 
esu   (2002-04-22 18:13) [4]

MBo Respect :)



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

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

Наверх




Память: 0.45 MB
Время: 0.006 c
3-97214
Fareader
2002-05-10 11:47
2002.05.30
Значение генератора


3-97184
MVVD
2002-05-08 09:19
2002.05.30
Locate


1-97280
VID
2002-05-17 16:48
2002.05.30
Лезем в облась памяти, выделенной для чужого приложения


3-97134
Lightning
2002-05-04 22:51
2002.05.30
Пароль на базу данных


3-97155
Санёк
2002-05-01 18:48
2002.05.30
Interbase...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский