1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
17.01.2022, 23:14 41
Author24 — интернет-сервис помощи студентам
Не пробовали решать вообще без нейросети?
Думаю тут чисто минимум 2 неизвестных с дискретным шагом положения концов отрезка, количество всех итераций поиска по числу отрезков. Все качество и сложность вычислений зависит от типа поиска минимума и его настроек. Поскольку каждая эпоха улучшает целевую то прикрутить комбинацию двух методов поиска случайный1 с крупным шагом сильно меняющий положение отрезков и случайный2 с мелким шагом как уточнение корня. Пределы шагов поиска на окружности для случайный1 и случайный2 это аналоги гиперпараметров сетки т.е. подбирать экспериментом.

Добавлено через 58 минут
Цитата Сообщение от denismix Посмотреть сообщение
Если оптимальное решение находится методом полного перебора, нужен "быстрый" метод, который позволит найти "достаточно хорошее" решение.
Если полный перебор то решение заведомо наилучшее а не достаточно хорошее.
Полный перебор не может быть "быстрый" он по определению самый медленный.
Единственно тут может на видеокарте распараллелить перебор хз как.

Все остальные методы поиска могут только приближаться к перебору на неизвестную величину если этого самого перебора нет =)).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2022, 23:14
Ответы с готовыми решениями:

Точка пересения отрезков по координатам их концов
Приветствую. Подскажите наиболее простой способ решения такой проблемы: есть два отрезка, точно...

Два отрезка выходят из начала координат. Даны координаты концов этих отрезков. Ка-кой из отрезков длиннее?
3. Два отрезка выходят из начала координат. Даны координаты концов этих отрезков. Ка-кой из...

Найти координаты концов отрезков
Доброго времени суток! Собственно, картинка во вложении. Требуется найти координаты концов...

Пусть задано N отрезков координатами их концов
Пусть задано N отрезков с помощью координат их концов. Определить среднюю длину отрезков, вывести...

Вычисление площади треугольника по координатам концов отрезков QT
Три отрезка заданы координатами своих концов. Определить, можно ли построить из них треугольник,...

68
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 01:01  [ТС] 42
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Не пробовали решать вообще без нейросети?
Пробовал, и не только я, но лучший результат дает нейросетка.

Классические жадные алгоритмы по дельте не могут дать ничего хорошего для цветного изображения - народ пробует как то там разбивать цвета на каналы и слои - но без уточнения деталей картинки и областей окрашивания - все это "рисование мелками по песку" - цвета или перенасыщены и ли "рассыпаются", детали смазаны и т.п.

Цитата Сообщение от Excalibur921 Посмотреть сообщение
Если полный перебор то решение заведомо наилучшее а не достаточно хорошее.
Велик и могуч русский язык =)
Я конечно же имел ввиду, что если не найдется алгоритма, который ищет оптимальное решение без полного перебора (т.е. достаточно быстро и не ресурсоемко), то я ищу алгоритм, который это может сделать быстро и "достаточно хорошо".
У нас похоже сильный разрыв в возрасте, в мое время, подобные фразы не требовали пояснений - просто все заведомо считали собеседника достаточно умным и не разжевывали ему прописные истины как детском саду...
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 01:26  [ТС] 43
Если коротко о методах без нейросетки, то получается следующее.
1. Мы "дробим" изображение с заданной дискретизацией и составляем систему линейных уравнений с совершенно понятно как зависимыми коэффициентами. Одно уравнение = одна "нить" или одно уравнение = один ряд разбиения - это роли не играет, важно, что есть матрица, которую нужно решить тем или иным способом.
2. НО, система заведомо избыточная, т.е. мы вообще то получаем не единственное решение, а целый их спектр. Причем не одно из них не "идеальное", т.к. нам никто не обещал, что эта система вообще имеет однозначное решение.
3. Тогда нам нужно выбрать какое то из возможных приближенных решений, наложив дополнительные условия. Хорошими условиями будет например "подчеркнуть контуры глаз" или там "осветлить пипку носа".
В теории контуры глаз можно конечно вычислять математически, но нужно ли, если есть нейросетки, которые под это и заточены?..
Выше описан алгоритм для классического монохромного решения, а вот с цветами все куда как сложнее, т.к. нити пересекаются и перекрывают друг-друга, что с точки зрения построения системы, требует кучу очень уж замысловатых (эмпирических) коэффициентов... в общем, пока еще никто толком ничего хорошего на эту тему не изобрел... или я о таком не слышал.

Оптимизация соединения концов отрезков
Миниатюры
Оптимизация соединения концов отрезков  
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 01:41  [ТС] 44
UPD

Добавлено через 3 минуты
Цитата Сообщение от denismix Посмотреть сообщение
что эта система вообще имеет однозначное решение.
Точнее, такие системы по понятным причинам не имеют решения, можно говорить только о выборе наиболее хорошего или подходящего нам приближенного решения.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 01:59 45
Не знаю зачем тут системы уравнения и темболее линейные. Может адовый пробел в математике. Что им тут вообще делать хз =)).

Представлю примерно так:
Повторяем растр оттенки серого, яркость это требование количества нитей проходящих через пиксель растра. Тут будет последовательная оптимизация и никак иначе.
Положение каждой нити искать как минимум 2 неизвестных с некоторым шагом радиан на окружности. В самом качественном решении будет перебор всех возможных положений отрезка. В каждом поиске отрезка считать целевую как точность повторения всего растра количество нитей на пиксель.

В алгоритме поиска минимум 2 неизвестных и кроиться критерий качества решения.
Лучший это перебор или его альтернативы с неизвестным качеством решения например генетический алгоритм, отжиг, случайный поиск…мультистарт. Суть то все алгоритмы всего 3 вида случайный, направленный и комбинация….а настроек никто не скажет они неизвестны.
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 11:39  [ТС] 46
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Может адовый пробел в математике.
Э... Коллега, а что собой представляет в общем (математическом) виде, пересечение всех этих отрезков для монохромного рисунка, как не систему линейных уравнений с кучей избыточных коэффициентов?
А нахождение лучшего из "всех возможных положений отрезка" - это и есть частное приближенное решение данной системы.
И такая задача по большому счету выеденного яйца не стоит, т.к. способов найти такое решение масса:
- "жадным" алгоритмом - последовательно находя отрезки (например как предлагаете вы, тривиальным перебором положений конца отрезка - "последовательно и никак иначе")
- любым из "спусков" - находя некие локальные решения (тут нужно задавать какие то дополнительные условия),
- ОПГ/НЛП методами - находя целые спектры приближенных решений, достаточно легко решается.

Вопрос только в конкретной реализации: скорость, гибкость, точность алгоритма и реализующего ПО.

Но вот в случае с цветными нитками, мы в (!)общем виде, приходим к настолько же "громоздкой" системе дифференциальных уравнений, а ее решать пока еще никто не научился - хоть такие олухи как я (с пробелами в математике), очевидно по наитию или механическим способом, хоть такие великие умы как вы, стандартными мат-методами. =)
0
Эксперт Python
3580 / 1681 / 303
Регистрация: 18.01.2021
Сообщений: 3,112
18.01.2022, 12:16 47
Цитата Сообщение от denismix Посмотреть сообщение
Как по мне - отличная возможность помериться письками с другими программистами-прикладниками - условия задачи очевидны, результат легко оценивается в определенных пределах. =))))
Кто ж этого не любит?
denismix, сгенерируйте пример, вершины, отрезки. Я с удовольствием поучаствую (на выходных только)
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 12:17 48
Цитата Сообщение от denismix Посмотреть сообщение
а что собой представляет в общем (математическом) виде, пересечение всех этих отрезков для монохромного рисунка, как не систему линейных уравнений с кучей избыточных коэффициентов
Нелинейную систему с кучей локальных минимумов которая поддается только последовательной оптимизации т.к. положение каждого отрезка должно улучшать целевую.
Цитата Сообщение от denismix Посмотреть сообщение
способов найти такое решение масса:
Так вот и я о томже. Больше выглядит как нейросеть нужна тут как зайцу стопсигнал. За все те эпохи обучения можно было 100500 раз решить любым методом.
А поскольку нейросеть сильно нелинейная штука то вместо простой линейной зависимости положения конца одного отрезка от параметра в нейросети координаты прыгают на окружности как-то так.
Название: ScreenShot01888.png
Просмотров: 36

Размер: 19.4 Кб
Причем в сетке изменяются сразу все веса а не один…кстати зашкал по количеству точек на окружности, тут реальней бы свети ну до 300. Мыслитель выглядит вообще как попиксельный рендер =)).
Цитата Сообщение от denismix Посмотреть сообщение
общем виде, приходим к настолько же "громоздкой" системе
Решение монохромного рисунка для 5 или т.к. это забава для 3 каналов RGB.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 12:30 49
Цитата Сообщение от denismix Посмотреть сообщение
Пробовал, и не только я, но лучший результат дает нейросетка.
Скорей всего несопоставимо больше настроек сетки вот и вся разница. Тут скорей вопрос конкретной реализации самой оптимизации.

Цитата Сообщение от denismix Посмотреть сообщение
цвета или перенасыщены и ли "рассыпаются", детали смазаны и т.п.
Скорей всего алгоритмические ошибки в расчете целевой и ничего более. Нельзя сравнивать человека который полгода полирует сетку рисовать ниткой и человека что из интереса накрапал оптимизацию за пару дней =).

В такой большой нейросети каждый вес сильно изменят сложную функцию по которой ездит конец каждого отрезка. Каждая эпоха изменяет сразу все координаты отрезка по сложной функции. Нейросеть тут используется с переобучением как универсальный аппроксиматор. Почему этот полный бред с точки зрения оптимизации вообще работает? Так с хорошим мотором ( 100500 нейронов и 100500 обучений) и забор полетит.
ИМХО чисто численная оптимизация и ничего более. Кстати если хорошо уменьшить количество отрезков и точек на окружности будет намного лучше заметно насколько хороша аппроксимация.
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 15:58  [ТС] 50
Цитата Сообщение от Excalibur921 Посмотреть сообщение
ИМХО чисто численная оптимизация и ничего более.
Ну начинал то я с численной оптимизации, но результаты легко сравнить:

1. s-art-pro - численная оптимизация
2. с вышеуказанного сайта переходите на Miracle - можно посмотреть что дает нейросеть...

Цитата Сообщение от Excalibur921 Посмотреть сообщение
Скорей всего несопоставимо больше настроек сетки вот и вся разница.
Верно. И коэффициенты именно те, которые нужно нам, а не те, которые позволяет сделать численный метод (+ тут еще и придумать нужно как их в него воткнуть посподручнее).

По большому счету, нейросетка и есть в основе своей численное решение системы дифуров, вопрос как такую систему составить и достаточно оптимизировать с нужными коэффициентами на коленке...

Добавлено через 17 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
За все те эпохи обучения можно было 100500 раз решить любым методом.
Вот тут готов поспорить.
Я давеча помогал сыну решать дифур вида https://www.cyberforum.ru/cgi-bin/latex.cgi?f(x)=u(x)-\Delta u(x) на единичной окружности (на границе = 0) с разбиением Делоне - курсовая МФТИ.
Там понятное дело возникает ипическая система, которую нужно решить (благо решение однозначное).
Ну я не совсем уж профан в ЧМ, поэтому модифицировал классический метод решения под реализацию на компьютере, который в итоге решает "это" с разбиением на 2000 треугольников примерно за 30 секунд... по словам сына доцент долго протирал очки, т.к. до этого речь шла о часах и днях. =)
Потом, ради эксперимента, закинул то же самое в не слишком громоздкую самообучающеюся сетку - решало за 10 секунд примерно на стандартных мощностях Гугла.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 16:02 51
Цитата Сообщение от denismix Посмотреть сообщение
начинал то я с численной оптимизации, но результаты легко сравнить:
Но ведь численный метод можно написать очень сильно разного уровня.
Интуитивно чувствую что хорошая оптимизация нейросеть просто на хлебушек намажет =)).

Очень сложно представить какие нужно придумать критерии чтобы хоть примерно их сравнить. Может количество тактов процессора затраченное на оптимизацию и обучение нейросети при одинаковом растре на входе, одинаковом количестве отрезков и одинаковом кол-ве точек на окружности. Но скорей всего такая нейросеть на видеокарте. Сравнивать длину отрезков и визуально результат…хз.

В численном методе можно каждый отрезок анализировать а в нейросети меняется ведь все 1000 сразу и нелинейно…ну никак не конкурент. Нейросеть ищет случайный локальный минимум а численный может найти глобальный.
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 16:41  [ТС] 52
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Но ведь численный метод можно написать очень сильно разного уровня.
Их правда очень много, но тот на который я дал ссылку, дает результат для 250 точек(гвоздиков) и 3000 отрезков(нитей) за 2,5 секунды на 4 ядрах по 1500 GHz
Но требуется подбирать коэффициенты врукопашную

Миракл (нейросетка) использует несопоставимо более высокие мощности, но дает тот результат, что имеем, без каких-либо допнастроек за долю секунды.

Тут уже приходится выбирать - или пользователь двигает кучу ползунков и тратит свое время на подбор оптимальных коэффициентов или все делает нейросетка.

Цитата Сообщение от Excalibur921 Посмотреть сообщение
а численный может найти глобальный
Все одно все "быстрые" ЧМ находят только приближенное решение, а иначе придется ждать сутки-двое.
Год назад, читал как два китайца (какие-то старшие научные сотрудники, в смысле не студенты) заморочились и написали алгоритм для Mathcad. Работала эта хреновина у них что то около трех суток... а в итоге выдала "кракозябру", которая после долгих споров и перепроверок, с математической точки зрения, действительно оказалась очень близка к "истинному" глобальному минимуму, и... очень далека от картинки которую они хотели сделать. =)
Но это больше анекдот, т.к. я понятное дело их алгоритм не проверял, хотя они пишут, что использовали только стандартные библиотеки и ошибки там быть не может.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 17:09 53
Интересно как оцениваете качество аппроксимации отрезками монохромного пикселя. Там вариантов бесконечно.
Лучше,хуже,худший
Название: ScreenShot01893.png
Просмотров: 33

Размер: 3.5 Кб
Некоторое понятие равномерности плотности чтоли…
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 18:00  [ТС] 54
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Интересно как оцениваете качество аппроксимации отрезками монохромного пикселя. Там вариантов бесконечно.
Тут в дело вступают дискретность и эмпирический расчет =)
Важно понимать, как это будет выглядеть в реальности с учетом в том числе теней и дифракции (в случае цветных нитей).
Я бы сказал так - чем "нити" ближе друг к другу, тем они создают более плотное покрытие (за счет теней), а вот пересечение нитей наоборот уменьшает плотность на площадь их пересечения (тут важен угол под которым они пересекаются)

Добавлено через 11 минут
На всякий случай я говорю о тенях и дифракции (в совокупности) в случае искусственного точечного освещения, как обычно подсвечивают картины или при фотографировании со вспышкой.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 18:35 55
Цитата Сообщение от denismix Посмотреть сообщение
о тенях и дифракции
Не думаю что важно учитывать настолько детально.

Думал квадрат разбивают на пиксели например 5 на 5 а линиям задают толщину в пикселях и набрасывают их с альфаканалом. Тогда нужен критерий оценки насколько некоторая поверхность с шумом( квадрат из пикселей 5 на 5 яркость) далека от плоскости ( эталон значение яркости пикселя). Чем больше тут будет критериев тем лучше будет итоговая картинка. Тут нужны некие критерии шероховатости поверхности. Наверно
самый простой вариант аппроксимация плоскостью, чем ближе такая плоскость к горизонтали и значению яркости эталона тем лучше.

Вообще тут нужны типа дисперсия, минмакс, среднеквадрат отклонения, сколько там шумов…некие критерии изображения может.
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 18:50  [ТС] 56
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Вообще тут нужны типа дисперсия, минмакс, среднеквадрат отклонения,
Существуют "классические" алгоритмы их легко найти в интренетах - у меня, сори, ссылок нет, т.к. изучал их достаточно давно и уде далеко от это ушел.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 18:58 57
Цитата Сообщение от denismix Посмотреть сообщение
Существуют "классические" алгоритмы их легко найти в интренетах
Вот только нужно знать правильный запрос в гугл.

https://ru.wikipedia.org/wiki/... оверхности
1)средний шаг неровностей профиля
2)средний шаг местных выступов профиля
3)отклонение пяти наибольших максимумов профиля
4)отклонение пяти наибольших минимумов профиля
5)расстояние от высших точек пяти наибольших максимумов до линии, параллельной средней и не пересекающей профиль
6)расстояние от низших точек пяти наибольших минимумов до линии, параллельной средней и не пересекающей профиль
7)наибольшая высота профиля
8)отклонения профиля от линии m
9)уровень сечения профиля
10)длина отрезков, отсекаемых на уровне
Жуть…
У вас похожая оценка была? Только это все для кривой а не поверхности, странно.
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 20:49  [ТС] 58
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Жуть…
Вот с этой оценкой согласен.
Остальные оценки для "классики" не используются.
Сейчас я правда уже очень далеко от всего этого, оценки совершенно другие - это комплексные оценки "точность"/"покрытие выбранных областей"/"стягивание локальной цепочки для текущего покрытия" (+ куча спецкоэффициентов), но это все для нейросетки.

В "классике" используют более простую оценку - дельта "хорошести нитки" (т.е. обычный жадный алгоритм нахождения максимума) - если вас правда заинтересовала тема, вам стоит найти "классическое" решение и начать разбор с него... ну а там, как фишка ляжет =)

Добавлено через 2 минуты
А, запрос в поисковики: "Стрингарт алгоритм для рисования фотографий" или что то около этого - ключевое слово "Стрингарт"

Добавлено через 1 час 1 минуту
Цитата Сообщение от Red white socks Посмотреть сообщение
сгенерируйте пример, вершины, отрезки. Я с удовольствием поучаствую (на выходных только)
Он очень глубоко встроен в нейронку, и там используются всякие специфические массивы и т.п.
Если коротко, то сейчас я:
1. Кладу все "хорды" в массив, далее беру первую хорду и в один проход ищу ближайшую к ней (сравниваю расстояния между всеми краями.
Кладу обе "хорды" в результирующий массив в правильном порядке, т.е. при необходимости меняю местами вершины найденной хорды.
Итого в результирующем массиве у нас лежат хорды в нужном порядке и мы знаем левую и правую вершины "цепочки".

2. Среди оставшихся хорд ищу очередную, которая "ближе" всего к координатам левой или правой вершины результирующей цепочки. Так же пристыковываю ее или слева или справа к результирующей цепочке...

3. Ну и т.д. пока не соберу в цепочку все хорды.

Получается конечно "сердито", но вполне себе работоспособно. На массиве из > 500 хорд, решение практически идеальное, на маленьких массивах (5-10 хорд) - результат похуже...

Но мне ОЧЕНЬ важна скорость, а быстрее (по соотношению скорость/качество) чем эта "жадина" я ничего не придумал.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
18.01.2022, 21:06 59
https://robocraft.ru/blog/computervision/4067.html
“1. предварительная обработка изображения: изображение переводится в градации серого, обрезается в квадрат, вписывается в круг и инвертируется в негатив.”

Думаю тут они забыли очень важные этапы Постеризация.
“Постеризация служит для уменьшения количества тонов (цветов) изображения”
Размыть не черты лица для акцента внимания. Это проще все в фотошопе подпилить ручками.

“2. процедура определения, где нужно провести линию: алгоритм в цикле перебирает все варианты проведения линии от одной точки ко всем остальны точкам, чтобы найти такой вариант, который даёт наиболее подходящее затенение.”

Тут у них вообще минимум одной неизвестной, странно ведь эффективней искать 2 конца отрезка а не один.

“Вот и всё! Оказалось, что немного Python и OpenCV способны творить и такие интересные штуки для автоматизированной генерации произведений искусства.”
Оптимизация соединения концов отрезков


На самом деле это отличный пример чернения идеи решать через оптимизацию. Странный выбор минимум 1 неизвестной, вместо 2. Очень странный критерий целевая функция… “который даёт наиболее подходящее затенение” тут нужны порядка 10 оценок на пиксель…

Вишенка на торте крайне неудачный пример растра вход… кот состоящий из контрастных линий и мелких деталей наотлично заточен ломать всю красоту от нитей.
Как специально сделано все…тайная реклама нейросетей =)
0
5 / 5 / 0
Регистрация: 03.10.2014
Сообщений: 307
18.01.2022, 21:44  [ТС] 60
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Вот и всё! Оказалось, что немного Python и OpenCV способны творить и такие интересные штуки для автоматизированной генерации произведений искусства
Жутковато как то у них всё это =))


Цитата Сообщение от Excalibur921 Посмотреть сообщение
странно ведь эффективней искать 2 конца отрезка а не один.
Одно из основополагающих условий - нить должна быть непрерывной.
Это следует из способа изготовления физической работы - наматывается одна непрерывная нить между кучей гвоздиков.
На 3000 итераций уходит 2-3 дня (у рекордсменов 8-9 часов), если нить будет разрывная, то можно охренеть завязывать узелки =)))

Добавлено через 9 минут
Процесс намотки.

https://youtu.be/XJRVqzoQUG0
https://youtu.be/ptNLGTIwmUw
0
18.01.2022, 21:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2022, 21:44
Помогаю со студенческими работами здесь

Даны координаты концов двух отрезков на прямой
Даны координаты концов двух отрезков на прямой. Определить, что является пересечением этих отрезков...

Вычисление площади треугольника по координатам концов отрезков с ++
Три отрезка заданы координатами своих концов. Определить, можно ли построить из них треугольник,...

По координатам концов трех отрезков определить вид треугольника
1. По координатам концов трех отрезков определить вид треугольника (если данные отрезки позволяют...

По координатам концов трех отрезков определить вид треугольника
По координатам концов трех отрезков определить вид треугольника ( если данные отрезки позволяют его...

В файле заданы координаты концов отрезков. Вывести их на экран
в файле задано координаты концов отрезков. Вівести их на екран. Количество отрезков не известно ...

Заданы N отрезков с координатами концов. Принадлежность точки отрезкам.
Вообщем не пойму саму суть определения... const n=3; var i,x,k:integer; a,b:array of real;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru