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

Вниз

Количество треугольников в массиве   Найти похожие ветки 

 
trxnet ©   (2009-11-06 19:14) [0]

Привет всем. Задали задачу решить, но немогу решить. Вобщем, есть 2мерный массив:

10х10
const x: Array [0..9, 0..9] of Integer
=((0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));

Нужно посчитать в нем кол-во прямоугольников (жирным веделены), прямоугольник состоящий из 1 не считается. Как это можно реализовать? Спасибо.


 
@!!ex ©   (2009-11-06 19:29) [1]

набор 8х8 точек - это сколько прямоугольников?
Если один, то элементарно делается.


 
Сергей М. ©   (2009-11-06 19:34) [2]


> Количество треугольников


>кол-во прямоугольников


Страшно подумать что будет дальше - то три, то прямо, то косо ..


 
trxnet ©   (2009-11-06 19:40) [3]

Извеняюсь, прямоугольников


 
Сергей М. ©   (2009-11-06 19:44) [4]

Ну вот сколько ты их видишь в этом массиве ?)


 
trxnet ©   (2009-11-06 19:46) [5]

3 получается, яж выделил))


 
Сергей М. ©   (2009-11-06 19:57) [6]

Это почему же 3 ?
И что значит "состоящий из 1 не считается" ?


 
trxnet ©   (2009-11-06 20:07) [7]

ну который состоит из 1, вон в пятой строке стоит 1, она не должна считаться за прямоугольник.


 
Сергей М. ©   (2009-11-06 20:13) [8]

Тогда чем

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

не прямоугольник ?


 
RWolf ©   (2009-11-06 20:16) [9]

Если в лоб — перебрать все 100 клеток в цикле двойной вложенности на предмет истинности предположени\ «клетка P1 — это левый верхний угол прямоугольника, а клетка P2 — правый нижний, причём точки не совпадают».
Критерий прямоугольности:
1) число в любой клетке, координаты которой лежат между координатами 1 и 2, равно единице;
2) числа в клетках-соседях прямоугольника равны нулю.


 
Дмитрий Белькевич   (2009-11-06 20:17) [10]

Как представлю себе процесс извенения... Бррррр...


 
Омлет ©   (2009-11-06 21:23) [11]

Идем в цикле, находим 1, делаем рекурсивный floodFill, смотрим, получился ли прямоугольник и заменяем заливку на 0.


 
SergP ©   (2009-11-06 21:39) [12]

Что-то я не понял что здесь является прямоугольником, а что нет...
Каковы критерии ?


 
Омлет ©   (2009-11-06 21:49) [13]

Да, если еще можно учитывать незалитые прямоугольники, то всё немного усложняется.

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 1, 1, 1, 1, 0, 1, 1, 1),
(0, 1, 0, 1, 1, 1, 0, 1, 0, 1),
(0, 1, 0, 1, 1, 1, 0, 1, 1, 1),
(0, 1, 0, 0, 0, 1, 0, 0, 0, 0),
(0, 1, 1, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 1, 1, 1, 1, 0),
(0, 1, 0, 0, 0, 1, 1, 1, 1, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

Тут сколько?


 
Омлет ©   (2009-11-06 21:50) [14]

> [13] Омлет ©   (06.11.09 21:49)

две единички забыл выделить. Но они тоже есть :)


 
trxnet ©   (2009-11-06 22:06) [15]

Не залитых не должно быть.

Прямоугольником считатется, если подрят идут 2 и более по горизонтали и вертикали.


 
Сергей М. ©   (2009-11-06 22:34) [16]


> trxnet ©   (06.11.09 22:06) [15]


Это тот самый 3-й прямоугольник, который у тебя "получается":

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 1, 1, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 1, 0, 0, 0, 0, 1, 1, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

И где здесь "2 и более по горизонтали" ?
Ты и вправду дибил или прикидываешься ?)


 
TUser ©   (2009-11-06 22:55) [17]

в этом массиве три прямоугольника, ты сам сказал


 
Игорь Шевченко ©   (2009-11-06 23:24) [18]

lines пишем...


 
trxnet ©   (2009-11-06 23:30) [19]

Прямоугольником считатется, если подрят идут 2 и более едениц по горизонтали или вертикали. Но если есть такая запись:
11
11
11

или такая: 1111
               1111

то считаем как прямоугольник.


 
TUser ©   (2009-11-06 23:37) [20]

11
11
1111
1111

тут сколько?


 
trxnet ©   (2009-11-06 23:41) [21]


> TUser ©   (06.11.09 23:37) [20]


  Сам незнаю)) Для такого размещения едениц условия нету)) Короче, похоже мне нужно узнать конкретные условия.


 
RWolf ©   (2009-11-06 23:44) [22]

Ещё неплохо бы уточнить, сколько прямоугольников вот тут:

0000000
0001100
0001100
0110000
0110000
0000000



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

Текущий архив: 2010.01.10;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
11-1210345865
Valera
2008-05-09 19:11
2010.01.10
Проблема С PaintBox (Соие программы типа Paint) на чистом kolздан


3-1233215568
Роман
2009-01-29 10:52
2010.01.10
как выбрать все дубликаты талицы SQL запросом


15-1257874841
DVM
2009-11-10 20:40
2010.01.10
Подскажите алгоритм или возможно название алгоритма


15-1257271998
trxnet
2009-11-03 21:13
2010.01.10
2 задачки. Размен денег и произведение многочленов


15-1257712925
POOP
2009-11-08 23:42
2010.01.10
При отражении длина световой волны меняется?