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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
2-1258211765
Вильен
2009-11-14 18:16
2010.01.10
Delphi7 + OpenGL


10-1162211576
Max Ivanych
2006-10-30 15:32
2010.01.10
Защита диапазона ячеек в Excel


2-1258287355
sagitt
2009-11-15 15:15
2010.01.10
Не работает отладчик


11-1205371733
Jon
2008-03-13 04:28
2010.01.10
KOL LabeledEdit


2-1258473755
6699
2009-11-17 19:02
2010.01.10
Файлы





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