Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,163
Записей в блоге: 2

Образование и практика

16.03.2025, 17:58. Показов 6256. Ответов 68
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

А вот каково качество/эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо, вот курс пройден и экзамен сдан. Начинает человек работать (по окончании ВУЗа или раньше), и занимается "компьютерной графикой". И приходится ему решать небольшие задачки. Напр
Луч v пересекает поверхность 3D объекта в точке p где известна нормаль к поверхности n. Требуется найти направление отраженного луча v' по правилу "угол падения равен углу отражения"
Ну или чуть по-другому
Ситуация та же но требуется найти преломленный луч, коэффициент преломления ior задан.
Справится ли человек с такими? Варианты

1. Легко справится
2. Подумает и решит
3. Ни фига не решит
4. Ваш вариант
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2025, 17:58
Ответы с готовыми решениями:

Теория и практика создания QA-систем
Хочу создать свою QA-систему, по этому реквестирую интересные статьи, книги, или собственные идеи по этой тематике.

Практика с алгоритмом блокчейна и собственная наработка
Всех приветствую!:senor: Интересуюсь таким вопросом: кто пробовал создавать какие-либо проекты или только какие-нибудь свои наработки...

Опыт или образование
Уважаемые, подскажите пожалуйста, что в it сфере больше ценится, образование или опыт ? Вероятно вопрос задан некорректно, т.к. будут...

68
5532 / 2885 / 573
Регистрация: 07.11.2019
Сообщений: 4,802
02.04.2025, 16:02
Студворк — интернет-сервис помощи студентам
Shamil1, ну да, странно было бы получить иной результат. Просто путь немного другой.
Деление на 0 приводит к предупреждению RuntimeWarning, выдает inf и np.clip переводит его в 1.0. Так что код не ломается...
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,910
02.04.2025, 17:35
Цитата Сообщение от u235 Посмотреть сообщение
Просто путь немного другой.
В чём его отличие? Кроме того, что диапазон обрезается "if d>1 then d=1" не прямо в коде, а вынесено в отдельную функцию?
0
5532 / 2885 / 573
Регистрация: 07.11.2019
Сообщений: 4,802
02.04.2025, 18:18
Shamil1, отличие в том, что подход, который я описал (параметрическое представление отрезка и аналитический поиск минимума), позволяет находить ближайшую точку не только для отрезка, но и для квадратичных и кубических кривых Безье.. Т.е., мне кажется, описаный метод несколько более общий..
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,910
02.04.2025, 23:47
Цитата Сообщение от u235 Посмотреть сообщение
мне кажется, описаный метод несколько более общий.
Соглашусь.
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,163
Записей в блоге: 2
03.04.2025, 16:36  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
(бессмысленно вычислять середину).
Ну это был (прозрачный) намек на цель этого кода.
Цитата Сообщение от Shamil1 Посмотреть сообщение
C++
1
2
float dp0 = QVector3D::dotProduct(a - p0, p1 - p0);
..
Так тоже хорошо, идейно. Действительно, точка проецируется на отрезок тогда (и только тогда) когда знаки dot'ов различны. Правда от проверки на точность это не избавляет, dp0 - dp1 может оказаться слишком малым
Цитата Сообщение от u235 Посмотреть сообщение
Деление на 0 приводит к предупреждению RuntimeWarning, выдает inf и np.clip переводит его в 1.0. Так что код не ломается...
Зависит от реализации. Напр на C/C++ деление флота на ноль не выдает никаких предупреждений и исключений. Результат получается Nan (inf его частный случай). Все сравнения с Nan возвращают false, даже так
C++
1
2
3
// дешевый фокус для начинающих, он же удобная проверка
if (a != a)
 printf("Oba-na!!")
А вся арифметика с ним возвращает тоже Nan, поэтому очень скоро все будет "инфицировано". Через обычную реализацию clip он проскочит
Цитата Сообщение от u235 Посмотреть сообщение
что подход, который я описал (параметрическое представление отрезка и аналитический поиск минимума), позволяет находить ближайшую точку не только для отрезка, но и для квадратичных и кубических кривых Безье.
Интересно, но насколько это реально для кубических Безье? Расстояние от точки (x0, y0, z0) до сегмента сплайна

dist = (x0 - fx(t))^2 + (y0 - fy(t))^2 + (z0 - fz(t))^2;

Где fx(y, z) - уравнения 3-го порядка, разница в коэффициентах задаваемых точками сплайна и контрольными. Выходит (после дифференцирования) уравнение 5-го порядка, насколько мне известно, для него нет аналитического решения
0
365 / 124 / 22
Регистрация: 08.01.2015
Сообщений: 1,418
Записей в блоге: 2
03.04.2025, 19:10
Цитата Сообщение от Igor3D Посмотреть сообщение
1. Легко справится
Потому что эту задачу может решить человек, нормально учившийся в средней школе (СССР/Россия/..., по крайней мере; как оно обстоит дело в западных школах или в Зимбабве - не знаю). Два вектора, найти угол между ними и т.д. А, возможно, в учебнике по АГ есть и готовая формула.
Вузовское образование тут ни к чему.
А вот если пойдет речь о каких-нибудь гиперболоидах, торах, их касаниях/столкновениях и т.п. - вот тут знаний средней школы не хватит. Или если потребуется определить поверхность пересечения двух 3D фигур.

Кроме того, даже в простых случаях знание математических закономерностей позволяет, иной раз, существенно сэкономить на объеме компьютерных вычислений, а также наметить более верный путь для реализации алгоритмов. Про АГ я не скажу, не слишком часто ее использую.
А вот взять, скажем, численное интегрирование. Есть методы Трапеций, Ньютона, т.д. Все они, так или иначе, подразумевают множество промежуточных расчетов. А есть метод Гаусса, который дает неплохие результаты (для более-менее гладких функций) за считанное число расчетов (нередко, 3...5) даже на сравнительно длинном отрезке. Т.е. скорость этого метода - на порядки выше. Особенно, если интегрировать, скажем, Бесселеву функцию.
Однако, перед тем, как применять метод Гаусса, следует четко понимать и "чувствовать", какова конкретная функция, что такое ее особенности, гладкость и пр. Какие они вообще бывают. Без вузовского образования, если человек не "трогал функции руками", он даже не поймет, о чем идет речь и что от него хотят. В итоге он будет вынужден разрабатывать алгоритмы методом проб.
Или взять линейное программирование, применяемое для решения систем линейных уравнений/неравенств. Этот метод дает "точные" решения. В том смысле, что их точность зависит только погрешностей вычислений, а сам метод погрешностей не имеет. Но, можно применить, например, итерационный подход. Он, как правило, побыстрее будет, но погрешность там может быть высокая. Особенно когда 10000+ уравнений и аналогичное число переменных. Отдельного разговора стоят перенабор матрицы переменных и ряд иных нюансов. Однако, чтобы в этом разбираться, мало прочтения отдельных статей в интернете. Придется учить ЛП в вузе или штудировать вузовский учебник самостоятельно.
Или взять последний мой вопрос о поиске ключевых слов. Там один человек предложил вполне работоспособное, хорошее решение. Через регулярные выражения. Однако, для большого количества ключевых слов его применение - под вопросом. Поэтому я сразу оценил критические числа ключевых слов. Потому что уже имею подобную привычку - делать оценки перед тем, как за что-то браться. А не будь у меня образования - мне бы и в голову. наверное, не пришло. И я бы даже не понимал, при каком числе КС такое решение может быть работоспособно. Пока на практике не получил бы зависание программы.

Добавлено через 8 минут
Цитата Сообщение от Igor3D Посмотреть сообщение
уравнение 5-го порядка, насколько мне известно, для него нет аналитического решения
В определенной окрестности конкретной точки его можно представить в кубическом или квадратическом виде с требуемой точностью.
1
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,163
Записей в блоге: 2
04.04.2025, 14:37  [ТС]
Ладно, как обещал попробую разобраться
Цитата Сообщение от Catstail Посмотреть сообщение
Тогда и вы попробуйте разобраться вот в моем коде. Что делает эта функция? Код длиннее вашего, но он решает законченную задачу. Из матричной алгебры.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
def foo(matr):
    n=len(matr)
    while True:
        imax=0
        jmax=1
        vmax=abs(matr[imax][jmax])
        i=0
        while i<=n-2:
            j=i+1
            while j<n:
                if abs(matr[i][j])>vmax:
                    vmax=abs(matr[i][j])
                    imax=i
                    jmax=j
                j+=1
            i+=1
        if vmax<0.001:
            break
 
        ematr=[[0 for _ in range(n)] for _ in range(n)]
 
        for i in range(n):
            ematr[i][i]=1;
 
        aii=matr[imax][imax]
        ajj=matr[jmax][jmax]
        aij=matr[imax][jmax]
 
        if abs(aii-ajj)<1.0e-9:
            if aij>0:
                fi=-pi*0.25
            else:
                fi=pi*0.25
        else:
        
            fi = 0.5 * atan(-2*aij/(ajj-aii))
 
        ematr[imax][imax]=cos(fi)
        ematr[jmax][jmax]=cos(fi)
 
        ematr[imax][jmax]=sin(fi)
        ematr[jmax][imax]=-sin(fi)
 
        tmp=mult_matr(ematr,matr)
    
        ematr[imax][jmax]=-sin(fi)
        ematr[jmax][imax]=sin(fi)
   
        matr=mult_matr(tmp,ematr)
 
    for i in range(n):
        print(matr[i][i])
Ничего не искал в инете, из того что вижу: в квадратной матрице шаг за шагом уменьшаются элементы выше диагонали до тех пор пока все они не окажутся достаточно малы. Находится наибольший элемент, с учетом его строится матрица поворота, на которую множится (дважды) исходная. Немного напоминает перевод матрицы в другой базис. Это все

Не вижу здесь никакой связи с базовыми знаниями ни с образованием вообще. Если известен первоисточник/описание, то проблем с реализацией быть не должно
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
04.04.2025, 16:09
Igor3D, вот о чём я и говорю... Вы абсолютно правильно (как и я - вашу) декодировали программу. Но то, что я предложил - это один из классических методов вычисления собственных векторов и собственных значений симметричной матрицы. Алгоритм Якоби. Задача на собственные векторы/значения - важнейшая задача вычислительной линейной алгебры. Она находит широчайшее применение во многих сферах (от небесной до квантовой механики и обработки многомерных данных). Связь с образованием очевидна (я же знаю этот метод; заканчивал физфак университета). Метод описан в книге Ильина и Позняка "Линейная алгебра" (курс для физиков). Вы подняли вопросы, которые традиционно относят к линейной алгебре (всякие действия с векторами). Так что и к базовым знаниям это имеет самое прямое отношение. Вам есть куда расти.
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,163
Записей в блоге: 2
05.04.2025, 18:05  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Igor3D, вот о чём я и говорю... Вы абсолютно правильно (как и я - вашу) декодировали программу. Но то, что я предложил - это один из классических методов вычисления собственных векторов и собственных значений симметричной матрицы. Алгоритм Якоби. Задача на собственные векторы/значения - важнейшая задача вычислительной линейной алгебры. Она находит широчайшее применение во многих сферах (от небесной до квантовой механики и обработки многомерных данных). Связь с образованием очевидна (я же знаю этот метод; заканчивал физфак университета). Метод описан в книге Ильина и Позняка "Линейная алгебра" (курс для физиков).
Как ни странно, я немного этим даже сталкивался При работе с движком физики дело часто упирается в constraint(s) которые частенько, увы, не работают как ожидалось. Напр есть цепочка отрезков (тонких капсул) с закрепленным нижним концом, сила прилагается к верхнему. Ожидается что цепочка будет гнуться/пружинить под действием этой силы. Но это удается сделать для одного сегмента (и то не просто так), иногда для двух (ценой больших усилий). Для большего числа разумного поведения добиться не удается. Цепочка рушится на землю, вращается и.т.п. Ладно, лезем в исходники. Понятно что пофиксить вряд ли удастся, но хотя бы ознакомиться с проблемой. Ну и сразу же попадаем на "матрицу Якоби". Викуська ничем особо не помогает, насколько помню, рассказывает про частные производные. Ну и что с того? Собственные вектора - ну да, легко запомнить, направление вектора остается тем же после умножения его на матрицу. Для нахождения собственных практически все либы имеют ф-ции. Но как это использовать/применить - хз.

Но, на мой взгляд, эти вещи уже далековато от "базовых" (вообще не помню что изучал их в институте)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2025, 18:05

Высшее образование (математика + программирование)
Здравствуйте! Закончил десятый класс, пытаюсь определиться с вузом. Раньше много времени уделял химии, планировал идти на химфак, пару...

Практика в ML
Доброго времени суток, друзья! Я студент 2-го курса ПМИ (СПбГУ), изучаю паралельно с учебой computer science, теор. вер., эконометрику...

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

Подскажите пожалуйста! Как заполненить дневник к производственной практике, может знает кто как это делать? Заранее спасибо)
Собственно трудности вызывает таблица в которой надо написать что я делал Каждый день! Таблица из 2 столбцов Дата | Рабочее...

Нужно ли это на практике?
Доброго {TimeOfDay}. У меня возник вопрос:Помагают ли олимпиадные задачи в работе программиста? Вот пример Коррупция prb21 С...


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

Или воспользуйтесь поиском по форуму:
69
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru