![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:53 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
К нулю её приравняй полностью.
|
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:54 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
[quote]начальную 10%-вероятность единиц сохранять не обязательно, но это не может быть 0% [quote]
О, объявляются ещё условия. Ну, запишы в левый верхний угол единицу. Будет не 0%. |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:54 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
А в чём заключается преобразование матрицы? В перестановке строк, столбцов, элементов? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
||||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:54 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
||||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:54 |
|||
|
||||
Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Можно ли свести решение к следующему:
1. Последовательно обойти массив поэлементно слева-направо и сверху-вниз. 2. Для каждой встречающейся единицы выполнять поиск комплекса только по направлению движения (без анализа назад). 3. При нахождении комплекса длиною 5 символов терминировать его нулями. ? -------------------- Слава Україні! |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
В этом же стиле можно предложить более щадящее решение - занулить каждый третий столбец и каждую третью строчку. Но есть подозрение, что нужно не это. А что - не понятно... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:55 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Ну, в принципе, ситуация ясна. Вы не можете сформулировать формально строгое условие задачи, поэтому, соответственно, не можете ее решить (и никто другой тоже не сможет). Постарайтесь обдумать и внятно записать критерии, которыми Вы руководствуетесь при оценке решения как правильного или неправильного. После этого Вам можно будет помочь (правда, с немалой вероятностью после этого помощь не потребуется - Вы решите задачу сами). Как вариант: напишите подробно, в связи с чем эта задача возникла. Тогда окружающие, возможно, смогут догадаться сами, что именно Вам на самом деле нужно. |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:55 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Спасибо!))) Конечный результат давно понятен. Не понятны требования по преобразованию матрицы. Это понятное требование. Оно влечёт за собой представление матрицы в виде графов и т.п. Можно было бы переставлять единички на свободные места так, чтобы выполнялось 5-условие. Но ведь нет, заменяются единички нулями, нарушая баланс между числом нулей и единиц. Вероятность встречи единицы падает. Это не понятное требование. Действительно, в матрице можно оставить одну единственную единичку, и такая матрица будет удовлетворять условиям:
![]() Если же задача стоит в том, чтобы случайным образом сгенерировать узор из единичек, чтобы выполнялось 5-условие, то эта задача решается не так (то есть не генерируются абы где единицы, а потом убираются лишние). Вот поэтому и возникают вопросы по формулировке задачи. Это сообщение отредактировал(а) feodorv - 16.12.2012, 15:45 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
2Фантом: у меня всё-таки есть подозрение, что объяснения нормальным логичным языком менее действенны, чем тыканье мордой в ошыбки. То есть тем, кто обычно понимает логику, и случайно как-то сглючил и задал такой вопрос -- тем вообще неважно, они и так и так поймут. У остальных шанс начать думать после получения грязи в физиономию (ну, чисто из-за разрыва шаблона), на мой взгляд, несколько большэ. Хотя и невелик, конечно. |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Между прочим, эта матрица не удовлетворяет первоначальным требованиям (хотя 5-условие соблюдается). -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:55 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Это как раз первое, что случилось в этом обсуждении. Тоже не помогло. |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:56 |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Я понял, что матрица большая. Кстати, какого размера? Нет, не про частоту единиц, а про то, что единицы касаются граней матрицы, а по условию
То есть эти единицы окружены нулями не со всех сторон ![]() А вот первый пример матрицы: целиком и полностью удовлетворяет этому условию ![]() Я вижу решение этой задачи так:
Это сообщение отредактировал(а) feodorv - 16.12.2012, 18:20 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Для простоты реализации алгоритма, я бы ввёл для элемента матрицы (помимо 0 и 1) ещё одно значение, скажем -1, которое будет означать, что данный элемент - свободный. При добавлении единицы в матрицу (как раз на место -1) на свободность нужно будет проверить только прилегающие к этой ячейке элементы
![]() Добавлено @ 18:38 Если в прилегающей ячейке 0 или 1 - то это значение остаётся. Если же -1, то ячейка проверяется на свободность (а можно ли будет в будущем в неё поместить единицу; если нет, тогда помещаем в эту ячейку 0 - это не 1, и в тоже время не свободная ячейка). Добавлено @ 18:46
Не, не прав. Если образуется комплекс из 5 единиц, то все -1 вокруг него нужно заменить нулями... Это сообщение отредактировал(а) feodorv - 16.12.2012, 18:47 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:56 |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Число "-1"-элементов (тупо просмотром всех элементов матрицы, и если в ячейке находится -1, то N++). Добавлено через 3 минуты и 8 секунд Либо так:
Тут сложности такие:
Добавлено через 8 минут и 21 секунду
Ага. Но если бы там была бы единица, то это был бы уже 6-комплекс ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:56 |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Это видимо узоры для вязания носков, свитеров и т.д.
Вы напрасно на девушку с логикой наехали. Надо просто расставить единицы красиво, и не так часто, имхо. ![]() Это сообщение отредактировал(а) volatile - 16.12.2012, 19:30 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
В принципе, это легко можно сделать той же рекурсией с ведением списка пройденных ячеек комплекса единиц (заодно можно будет узнать число ячеек, входящих в комплекс единиц). То есть для каждой ячейки комплекса (начиная с той, в которой -1 заменили на 1) делаем:
Если меньше, то нужно проверить окружающие (нашу ячейку, в которой "-1" заменили на "0") ячейки со значением "-1" на свободность (ибо их свободность могла измениться). Это делается рекурсией аналогично, только
Вам всё равно придётся проверять (прилегающие) ячейки со значением "-1" на свободность при добавлении новой единицы (эти ячейки уже могут стать несвободными). -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Вот набросал приблизительный код на C:
Ничего так, симпатичные матрицы получаются:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
fybvfpfybc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.2.2012 Репутация: -1 Всего: -1 |
11
Это сообщение отредактировал(а) fybvfpfybc - 26.6.2013, 14:57 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
![]() ![]() В принципе, функция matrix_entwine вообще не нужна, ибо если в комплексе 5 единичек, то matrix_check_free и так поставит нулики куда нужно ![]() Итого код для matrix_add становится совсем простым:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Спасибо ![]() ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |