Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.30;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-97226
Dr.Pipe
2002-05-18 20:22
2002.05.30
Помогите с двумя формами


1-97258
antistatic
2002-05-21 07:54
2002.05.30
Проблемы с String и PChar


1-97330
ng
2002-05-14 08:07
2002.05.30
TopLeftChanged


3-97130
Alex Spirin
2002-05-05 20:26
2002.05.30
Бо-о-о-льшой запрос


14-97395
Sergey13
2002-04-10 10:45
2002.05.30
Отказы оборудованияю. Ваша статистика.