Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 3, 4, 5, 6, 7
 Re: О возможности заменить программистов на ИИ
EUgeneUS в сообщении #1729272 писал(а):
качество - это соответствие ожиданиям потребителя.
Может где-то это и так, хотя я очень сомневаюсь, но в программировании это совершенно не так. Поэтому, в частности, опенсурс качественнее проприетарного софта -- потому что потребитель не платит и программист может спокойно делать то, что надо делать, а не то, что ожидает потребитель.

 Re: О возможности заменить программистов на ИИ
Mental, вы вайбкодер?

 Re: О возможности заменить программистов на ИИ
Аватара пользователя
Mental в сообщении #1729327 писал(а):
Ваших комментариев тут и не требуется,


Я, пожалуй сам решу, какие мои комментарии требуются, а какие нет.
Без указаний хамоватого кодера.

 Re: О возможности заменить программистов на ИИ
Аватара пользователя
EUgeneUS в сообщении #1729370 писал(а):
Я, пожалуй сам решу, какие мои комментарии требуются, а какие нет.

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

-- добавлено через 1 минуту --

EUgeneUS в сообщении #1729370 писал(а):
Без указаний хамоватого кодера.

О вашем умении вести себя в приличном обществе также всё понятно :mrgreen: .

 Re: О возможности заменить программистов на ИИ
Аватара пользователя
warlock66613 в сообщении #1729331 писал(а):
Может где-то это и так, хотя я очень сомневаюсь, но в программировании это совершенно не так.


Это не может быть "не так". Потому что это словарное определение данное нам в ощущениях в словарях, например, приложенных к стандартам. Вот небольшая первая попавшаяся подборка:

Цитата:
Словосочетание качество продукции имеет несколько различных определений, например:

В стандарте ГОСТ 15467-79[1]: совокупность свойств продукции, обусловливающих её пригодность удовлетворять определённые потребности в соответствии с её назначением.
В стандарте ИСО 8402—86[2]: «Качество — совокупность свойств и характеристик продукции или услуги, которые придают им способность удовлетворять обусловленные или предполагаемые потребности потребителя».
В стандарте ГОСТ Р ИСО 9000-2015[3]: «Качество — степень соответствия совокупности присущих характеристик объекта требованиям».


Несмотря на разницу в определениях, все они от определения в советском ГОСТе 1979-лохматого года до относительно современного исошного, построены единообразно:
"свойства, характеристики $\to$ соответствие\способность удовлетворять $\to$ требования, потребности, ожидания".

Дальше, конечно, могут начинаться "пляски с бубном" вокруг этого. Например:
1. А кто эти "потребители"? Ответы иногда могут быть совсем неочевидными.
2. А с чего это мы решили, что в SRS, который писали одни люди, отражены ожидания потребителей, которые совсем другие люди?
И т.д.

Но в любом случае, это не меняет определения "качества". И продукт, который не отвечает базовым функциональным требованиям - это не продукт, а брак или "неработающий макет для выставки".

 Re: О возможности заменить программистов на ИИ
Аватара пользователя
EUgeneUS в сообщении #1729385 писал(а):
1. А кто эти "потребители"? Ответы иногда могут быть совсем неочевидными.

Ну да. Всё становится на свои места, если под "потребителями" программного продукта подразумевать других программистов, изучающих, развивающих и, может быть, местами использующих этот продукт. Такое встречается в опенсорсе довольно часто. Вообще в программировании довольно много почти не пересекающихся друг с другом миров со своими законами.

 Re: О возможности заменить программистов на ИИ
Mental в сообщении #1729384 писал(а):
К сожалению, иногда человек в силу ограниченности неспособен это сделать самостоятельно. И ценой неимоверных и бескорыстных усилий ему нужно об этом непременно сообщить.

 !  Предупреждение за хамство.

 Re: О возможности заменить программистов на ИИ
Аватара пользователя
worm2 в сообщении #1729386 писал(а):
Ну да. Всё становится на свои места, если под "потребителями" программного продукта подразумевать других программистов, изучающих, развивающих и, может быть, местами использующих этот продукт.


В том числе. Хороший пример, я сам хотел его привести в следующем раунде дискуссии с уважаемым warlock66613, если бы таковой состоялся :wink:

worm2 в сообщении #1729386 писал(а):
Такое встречается в опенсорсе довольно часто. Вообще в программировании довольно много почти не пересекающихся друг с другом миров со своими законами.


Но сводить это к каким-то специальным особенностям программирования и его методологий - имхо, в корне неверно.
Абстрагирование исполнителя от ответственности за качество конечного продукта - это не свойство программирования, а свойство разделения труда вообще.
Даже в цеховом способе производства в Средние века у мастеров были подмастерья. Задача которых была качественно выполнить простые или физически тяжелые задачи. Качество тут - это соответствие ожиданиям мастера. А за качество готового клинка или рейтузов перед покупателем отвечал мастер.

 Re: О возможности заменить программистов на ИИ
Вот результат короткого общения с Gemini и демонстрация качества написания "ею" программ. Все приведено "как есть", включая выданные тексты программ с комментариями.

Цитата:
Мой вопрос:
Gemini, please write a MATLAB program that finds and returns all the external facets ((n-1)-dimensional faces) of the simplices making up the n-dimensional Delaunay triangulation of a set of data points, assuming that the n-dimensional Delaunay triangulation itself has alredy been computed using the MATLAB function delaunayn().

Gemini, напиши пожалуйста программу на MATLAB, которая находит и возвращает все внешние грани симплексов, составляющих n-мерную триангуляцию Делоне набора точек, подразумевая, что сама n-мерная триангуляция Делоне уже была посчитана с помощью функции MATLAB delaunayn().

Ответ Gemini:
To extract all external facets ($(n-1)$-dimensional boundary faces) from an $n$-dimensional Delaunay triangulation in MATLAB, you can identify which facets belong to **exactly one simplex**.

Internal facets are shared by two adjacent simplices, while external facets form the outer boundary (convex hull) of the triangulation and appear in only one simplex.

Here is a MATLAB function that performs this extraction efficiently using `sort` and `unique`:

Чтобы извлечь все внешние грани из n-мерной триангуляции Делоне в MATLAB, можно определить, какие грани принадлежат **ровно одному симплексу**.

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

Вот функция MATLAB, которая эффективно выполняет данную экстракцию с помощью функций `sort` и `unique`:


Matlab

Код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
function ext_facets = getExternalFacets(DT)
% GETEXTERNALFACETS Returns the external (n-1)-dimensional facets of an n-D Delaunay triangulation.
%
% Input:
%   DT - Matrix of size (m x (n+1)) returned by delaunayn(P),
%        where each row represents an n-simplex by its vertex indices.
%
% Output:
%   ext_facets - Matrix of size (f x n) where each row contains the sorted
%                vertex indices of an external (n-1)-facet.

    [m, np1] = size(DT); % m simplices, np1 = n + 1 vertices per simplex
    n = np1 - 1;         % Dimension of the space
   
    % Step 1: Extract all (n-1)-facets from every simplex
    % A simplex with (n+1) vertices has (n+1) facets, each missing 1 vertex.
    total_facets = m * np1;
    all_facets = zeros(total_facets, n);
   
    for i = 1:np1
        % Facet opposite to the i-th vertex of each simplex
        cols = [1:(i-1), (i+1):np1];
        idx_start = (i-1)*m + 1;
        idx_end = i*m;
        all_facets(idx_start:idx_end, :) = DT(:, cols);
    end
   
    % Step 2: Sort vertex indices along rows so identical facets have identical rows
    all_facets = sort(all_facets, 2);
   
    % Step 3: Count occurrences of each unique facet
    % 'unique' with 'rows', 'stable', and 'ic' gives the mapping index ic
    [unique_facets, ~, ic] = unique(all_facets, 'rows');
   
    % Count frequency of each unique row
    facet_counts = accumarray(ic, 1);
   
    % Step 4: External facets are those that appear exactly once
    ext_facets = unique_facets(facet_counts == 1, :);
end


### Example Usage

Используется синтаксис Matlab M
% Generate a 3D point cloud
P = rand(50, 3);

% Compute 3D Delaunay triangulation (4 vertices per simplex)
DT = delaunayn(P);

% Find boundary triangles (2D external facets)
ext_facets = getExternalFacets(DT);

% Visualize the boundary triangulation in 3D
trisurf(ext_facets, P(:,1), P(:,2), P(:,3), ...
        'FaceColor', 'cyan', 'FaceAlpha', 0.5, 'EdgeColor', 'k');
axis equal;
title('External Boundary Facets of 3D Delaunay Triangulation');


### Explanation of the Algorithm

1. **Facet Generation:** An $n$-dimensional simplex contains $n+1$ facets, each formed by leaving out one vertex. The loop gathers all $m \times (n+1)$ facets across all simplices.
2. **Canonical Ordering:** Sorting each row guarantees that a facet defined by vertices $\{3, 1, 7\}$ matches the same facet defined by $\{7, 3, 1\}$.
3. **Frequency Counting:** Using `unique` with `accumarray` counts how many times each face appears.
4. **Boundary Filtering:** Internal facets border two simplices and appear twice (`count == 2`). External facets lie on the boundary and appear only once (`count == 1`).

1. **Генерация граней:** n-мерный симплекс содержит n+1 граней, каждая из которых образована путем исключения одной вершины. Цикл собирает все m × (n+1) граней по всем симплексам.

2. **Канонический порядок:** Сортировка каждой строки гарантирует, что грань, определенная вершинами $\{3, 1, 7\}$, соответствует той же грани, определенной $\{7, 3, 1\}$.

3. **Подсчет частоты:** Использование `unique` с `accumarray` подсчитывает, сколько раз встречается каждая грань.

4. **Фильтрация границ:** Внутренние грани граничат с двумя симплексами и встречаются дважды (`count == 2`). Внешние грани лежат на границе и встречаются только один раз (`count == 1`).


Моя реплика:
Thanks, Gemini! Tested, it works properly!

Спасибо, Gemini! Проверено, работает правильно!

Ответ Gemini на реплику:
Glad to hear it worked smoothly!If you plan to scale this to larger datasets or higher dimensions, keep in mind that extracting facets with unique(..., 'rows') can become memory-heavy. For extreme point counts, building a sparse adjacency matrix or hashing the sorted row vectors can give you an extra speed boost.

Рада слышать, что всё сработало гладко! Если вы планируете масштабировать это на большие наборы данных или более высокие размерности, имейте в виду, что извлечение фасетов при помощи unique(..., 'rows') может потребовать много памяти. Для экстремально большого количества точек построение разреженной матрицы смежности или хеширование отсортированных векторов строк может дать дополнительный прирост скорости.


Все пугающе правильно :mrgreen:

 [ Сообщений: 99 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7


Соглашение о конфиденциальности | Общие правила

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group