Вопрос № 181258: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос об очередной задаче о перколяции на кубической решетке: Перколяция считается по 3 направлениям -горизонтальной, вертикальной и диагональной( ну по оси z то есть). Но есть сло...
Вопрос № 181319: Здравствуйте, уважаемые эксперты! Помогите пожалуйста решить такую задачу: Написать программу нахождения в графе мостов и точек сочленения. ...
Вопрос № 181339: Здравствуйте, уважаемые эксперты! Можете пожалуйста помочь с разработкой программы ? Разработать программу для обработки растровых изображений, хранящихся в файлах формата BMP (BitMaP) : Изменить яркость изображения. Самый простой спосо...
Вопрос № 181346: Здравствуйте, уважаемые эксперты! Прошу Вас помочь с переделыванием структуры программы в приложении, написанной на code blocks, на работу с файлами. Хочется в готовой программе увидеть следующий вывод: http://s43.radikal.ru/i102/1011/cc/79e92bc87...
Вопрос № 181258:
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос об очередной задаче о перколяции на кубической решетке: Перколяция считается по 3 направлениям -горизонтальной, вертикальной и диагональной( ну по оси z то есть). Но есть сложность в заполнении самой решетки : если решетка 10х10х10, то программа считает довольно быстро. Если решетка 20х20х20 то программа зависает(начинает считать КРАЙНЕ медленно) при вероятности заполнения решетки где на 23%. При решетке 50х50х50 - еще раньше. Думаю,
что проблема именно в ее заполнении. Делала заполнение решетки, как в квадратной, но тогда программа вопще заполнять не хотела //заполнение матрицы int c1 = klinear*kwide*kheight*p; //число единиц int k1 = 0; int ofs_w, ofs_l, ofs_h; srand (time(NULL)); while (k1<c1) { ofs_w = rand()%kwide; ofs_l = rand()%klinear; ofs_h = rand()%kheight; if (matrix[ofs_l][ofs_w][ofs_h]!=0)
continue; matrix[ofs_l][ofs_w][ofs_h] = 1; k1++; }
Раз та программа уже полностью рабочая, я сделал более сложную. Она уже зависит только от доступной памяти. Проверил на кубе 500*500*500 - работает, хоть и очень долго. Максимальный путь на таком кубе составил 42311 шагов. В стандартный стек столько функций не помещается. Оптимизации:
Куб хранится одним блоком памяти. Так он меньше места занимает и доступ быстрее. Эмуляция рекурсии стеком. В структуре State хранится информация, которая хранилась бы в экземпляре функции.
Теперь переполнения стека не будет. Стек кешируется, чтобы объекты не создавались-удалялись постоянно. На это уходит очень много времени.
Теперь размер 200*200*200 берет очень резво, только на переходных вероятностях затормаживается.
Приложение:
Ответ отправил: Evgenijm (10-й класс)
Ответ отправлен: 17.12.2010, 04:35
Номер ответа: 264832
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264832
на номер 1151 (Россия) |
Еще номера »
Вопрос № 181319:
Здравствуйте, уважаемые эксперты! Помогите пожалуйста решить такую задачу: Написать программу нахождения в графе мостов и точек сочленения.
Отвечает Гаряка Асмик (Профессор) :
Здравствуйте, Николаев Александр Валерьевич!
Прямое ребро (x,y) является мостом если и только если low[y]=enter[y]. (Обратное ребро никогда не может быть мостом). Вершина x является точкой сочленения если low[x] = enter[x], за исключением случая когда она - корень дерева поиска и имеет менее чем двух потомков в дереве.
После небольших изменений программа вычисляет и точки сочленения.
Приложение:
Ответ отправил: Гаряка Асмик (Профессор)
Ответ отправлен: 18.12.2010, 18:40
Номер ответа: 264878
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264878
на номер 1151 (Россия) |
Еще номера »
Вопрос № 181339:
Здравствуйте, уважаемые эксперты! Можете пожалуйста помочь с разработкой программы ?
Разработать программу для обработки растровых изображений, хранящихся в файлах формата BMP (BitMaP) :
Изменить яркость изображения. Самый простой способ - изменить значения ком-понентов всех пикселей растрового изображения на некоторое значение V, лежа-щее в диапазоне от -255 до 255 (отрицательные значения уменьшают яркость, по-ложительные - увеличивают) и вводимое из текстового файла (но лучше, если из командной
строки).
Далее условия выполнения (и есть еще структура заголовка которая приведена в таблице)
(РАСТРОВЫЕ ИЗОБРАЖЕНИЯ
Растровое изображение представляет собой матрицу пикселей, каждый из которых имеет свой цвет. Основными характеристиками растрового изображения являются разре-шение и глубина цвета. Разрешение определяет размеры изображения: его длину (количе-ство пикселей в строке) и высоту (количество строк). Глубина цвета определяет количест-во
используемых в изображение цветов и оттенков. Глубина цвета зависит от выбранной цветовой модели, а также количества бит, отводимых для хранения цвета одного пикселя изображения. Наиболее распространенной цветовой моделью является цветовая модель RGB (Red, Green, Blue), в соответствии с которой цвет пикселя изображения описывается последовательностью из трех значений: интенсивность красного, зеленого и синего цве-тов.
ФОРМАТ BMP ФАЙЛА
В файле формата bmp можно выделить несколько частей: ∙ заголовок; ∙ палитра
(присутствует только в палитровых изображениях, их рассматривать не будем); ∙ массив пикселей изображения. Заголовок описывает основные характеристики хранимого изображения. Он располо-жен в самом начале файла и всегда занимает 54 байта. )
Отвечает Павел Юрьевич (6-й класс) :
Здравствуйте, Алексей!
Вот здесь есть пример с исходниками: http://www.codeproject.com/KB/graphics/imagepreview.aspx
Ответ отправил: Павел Юрьевич (6-й класс)
Ответ отправлен: 14.12.2010, 12:05
Номер ответа: 264762
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264762
на номер 1151 (Россия) |
Еще номера »
Вопрос № 181346:
Здравствуйте, уважаемые эксперты! Прошу Вас помочь с переделыванием структуры программы в приложении, написанной на code blocks, на работу с файлами. Хочется в готовой программе увидеть следующий вывод: http://s43.radikal.ru/i102/1011/cc/79e92bc876cb.png Спасибо.
Отвечает Verena (Профессор) :
Здравствуйте, Aptemis! Если вносить минимальные изменения в исходную программу, то проще всего все scanf-ы заменить на fscanf, а printf-ы, отвечающие за вывод, на fprintf. Число записей тоже можно читать из файла, но тогда уже надо будет использовать динамические массивы. Простейший пример в приложении, в логику программы никаких изменений не вносила. Удачи!
Приложение:
----- Эта история - не для истории, понимаешь?
Ответ отправил: Verena (Профессор)
Ответ отправлен: 18.12.2010, 01:19
Номер ответа: 264863
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 264863
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.