Skip to content

Comments

Шилин Никита. Технология SEQ. Вычисление многомерных интегралов методом Монте-Карло. Вариант 12#72

Open
Calabras wants to merge 3 commits intolearning-process:masterfrom
Calabras:shilin_n_monte_carlo_integration
Open

Шилин Никита. Технология SEQ. Вычисление многомерных интегралов методом Монте-Карло. Вариант 12#72
Calabras wants to merge 3 commits intolearning-process:masterfrom
Calabras:shilin_n_monte_carlo_integration

Conversation

@Calabras
Copy link

Описание

  • Задача: Вычисление многомерных интегралов методом Монте-Карло

  • Вариант: 12

  • Технология: SEQ

  • Описание вашей реализации и отчёта.
    Реализован метод квази-Монте-Карло для вычисления многомерных определённых интегралов произвольной размерности. Для генерации точек используется последовательность Кронекера — детерминированная квазислучайная последовательность на основе дробных частей квадратных корней простых чисел (2, 3, 5, 7, ...). Это обеспечивает равномерное покрытие области интегрирования и воспроизводимость результатов.

    Алгоритм: для N точек в d-мерном пространстве [a₁,b₁]×...×[aₐ,bₐ] генерируются квазислучайные координаты, вычисляется значение подынтегральной функции в каждой точке, результат усредняется и умножается на объём области. Сложность: O(N·d) по времени, O(d) по памяти.

    Поддерживаются 5 подынтегральных функций с известными аналитическими решениями: Constant (f=1), Linear (f=Σxᵢ), Product (f=Πxᵢ), SumSquares (f=Σxᵢ²), SinProduct (f=Πsin(xᵢ)). Тестирование включает 8 функциональных тестов (1D, 2D, 3D) и 2 перформанс-теста (10M точек, 3D).


Чек-лист

  • Статус CI: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
  • Директория и именование задачи: Я создал директорию с именем shilin_n_monte_carlo_integration
  • Полное описание задачи: Я предоставил полное описание задачи в теле pull request
  • clang-format: Мои изменения успешно проходят clang-format локально в моем форке (нет ошибок форматирования)
  • clang-tidy: Мои изменения успешно проходят clang-tidy локально в моем форке (нет предупреждений/ошибок)
  • Функциональные тесты: Все функциональные тесты успешно проходят локально на моей машине
  • Тесты производительности: Все тесты производительности успешно проходят локально на моей машине
  • Ветка: Я работаю в ветке, названной точно так же, как директория моей задачи
    (shilin_n_monte_carlo_integration), а не в master
  • Правдивое содержание: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и
    достоверными

@Calabras Calabras requested a review from allnes as a code owner February 25, 2026 10:11
@Calabras Calabras force-pushed the shilin_n_monte_carlo_integration branch from e600eb2 to 20f5f42 Compare February 25, 2026 10:12
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e600eb2342

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


for (int i = 0; i < num_points_; ++i) {
for (int d = 0; d < dimensions; ++d) {
current[d] += kAlpha[d % alpha_size];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Generate unique Kronecker steps for each dimension

Using d % alpha_size makes dimensions separated by 10 share the same Kronecker increment, so coordinates become perfectly correlated (e.g., x0 == x10 for all samples). This introduces a systematic bias for valid higher-dimensional inputs (e.g., kProduct and kSinProduct in 11+ dimensions), so the estimator is no longer correct for the claimed arbitrary-dimensional case. Either reject dimensions above the supported alpha list or generate distinct irrational steps for every dimension.

Useful? React with 👍 / 👎.

@Calabras Calabras force-pushed the shilin_n_monte_carlo_integration branch from 8d79f99 to cad3715 Compare February 25, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant