Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизПомогите разработать алгоритм Найти похожие ветки
← →
Ata133 © (2004-10-07 16:04) [0]Есть сетка с цифрами 0-9 изначально в ячейках (каждый раз размер сетки меняется, поэтому храню ее так: "a: Array Of Array Of Byte"). Как мне разбавить эту сетку цифрами "10", причем, чтобы в каждой строке/столбце расстояние между ближайшими "10" было не больше заданного S, а также не было замкнутых областей с обычными цифрами, т.е. чтобы от любой цифры 0-9 в сетке можно было "добраться" (не через "10") к любой другой цифре массива от 0 до 9. К тому же наборы цифр (с "длинной" In [2..S]) по горизонтали/вертикали от одной "10" (или от первого элемента массива) до другой "10" (либо до последнего элемента) не должны повторяться во всем массиве как по горизонтали так и по вертикали.
Вариант есть, но очень уж громоздкий получился. Может кто-нть что-нть подсказать?
← →
Ata133 © (2004-10-15 11:50) [1]Удалено модератором
← →
palva © (2004-10-15 14:35) [2]Я, правда не мастер, но отзовусь. Может у меня с головой не в порядке, но я ничего не понял.
Что такое сетка, я, кажется догадался, это что-то вроде Grid, а вот дальше... Почему важен метод хранения? В какой момент размеры сетки меняются? Что такое разбавить - это раздвинуть или заменить? Что такое первый элемент массива - какого массива? Что такое расстояние между цифрами 10, если они не на одной вертикали или горизонтали? Что такое "добраться" (не через "10") - типа если десятки стоят по диагонали, то можно преодолеть эту диагональ? Ну и т. д.
← →
Ata133 © (2004-10-26 16:40) [3]To: Palva
>> Почему важен метод хранения?
Да не важен собственно, просто много операций с данными, поэтому обрабатываю в памяти в дин.массиве, а после всех операций уже можно хоть на диск записывать.
>> В какой момент размеры сетки меняются.
Только в начале работы процедуры. В процессе - не меняется.
>> Что такое разбавить - это раздвинуть или заменить?
Заменить текущее значение в клетке на "10"
>> Что такое первый элемент массива - какого массива?
В моем случае сетка = двумерному дин.массиву, т.е. здесь - это одно и тоже.
>> Что такое расстояние между цифрами 10, если они не на одной вертикали или горизонтали?
Такое рассотяние не надо учитывать. Меня интересует только по "каждой строке/столбце"...
>> Что такое "добраться" (не через "10")?
Двигаться можно только на клетку вправо, влево, вверх или вниз, т.е. по диагонали - нельзя.
Спасибо за ответ )))
← →
Ega23 © (2004-10-26 16:49) [4]А зачем Aray of array of byte?
← →
Ata133 © (2004-10-27 11:17) [5]To: Ega23
>> А зачем Aray of array of byte?
Ну я начинающий Delphist, поэтому других способов не знаю. А как еще динамический массив можно создать?
← →
TUser © (2004-10-27 11:24) [6]
> Что такое сетка, я, кажется догадался, это что-то вроде
> Grid
Наверное, просто 2d массив - array of array of byte
← →
Ega23 © (2004-10-27 11:35) [7]Я через TList это всё делал. Индекс вычисляется элементарно, массив - одномерный, проблем - никаких. Вообще написать класс типа матрицы и не париться...
← →
Ata133 © (2004-10-29 12:24) [8]To: TUser
ну да... )))
To: Ega23
а вот с этого момента можно поподробнее? )) Как написать класс типа матрицы ?
← →
Ata133 © (2004-11-01 17:23) [9]To: Ega23
Ну и как это сделать?
← →
Ega23 © (2004-11-01 17:34) [10]Ну как-как.. Сначала определись, что ты хочешь. Каким образом будешь задавать размер? Как загонять данные? Какого типа данные?
И т.п.
← →
Ata133 © (2004-11-02 09:52) [11]Размер и S задается с помощью SpinEdit"ов на форме. Больше никаких данных от пользователя не требуется. Тип Byte. Потом нажимается пользователем кнопка "Создать" и запускается процедура, над которой я и бьюсь. Сначала создается 2D массив и заполняется полностью цифрами 0, а вот потом начинается самое интересное. Вообщем, это должен быть в идеале кроссворд только числовой, 10 - обозначают стенки кроссворда, вот мне и надо, чтобы кроссоврд был размером MxN, а длина каждого загаданного числа не больше задаваемого S. Хорошо бы, чтобы еще числа не начинались с 0. ))
← →
Ata133 © (2004-11-05 17:53) [12]
5 6 7 4 7 2 2 10 ...
0 10 2 4 6 10 10 10 ...
3 10 5 0 3 2 7 1 ...
10 2 8 9 10 0 10 8 ...
10 10 7 10 9 10 10 9 ...
...
← →
Ata133 © (2004-11-11 14:56) [13]To Ega23:
Ну напиши хоть как "Вообще написать класс типа матрицы и не париться..."
← →
Ega23 © (2004-11-11 15:13) [14]egorov@dedal.dubna.ru
Пиши.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c