Search
Write a publication
Pull to refresh
13
0

Пользователь

Send message

Здесь малость увлёкся. Преполагалось наличие возможности использования одного из множителей  (D-2)(D+1)для дальнейшего сокращения. Потом так все и осталось. Поскольку формулы уже были переведены в рисуночный формат, затруднительно было переделывать это.

Так и не о кривых Пеано непосредственно речь идёт. А абзац который вы прокомментировали я немного изменил, добавив "рациональных, с минимальным количеством поворотов" обходов квадратных матриц.

Очень может быть!

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

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

Ну не совсем все так печально.

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

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

Таким образом, код здесь не является движущей силой, а скорее средством моделирования.

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

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

Если Вы имеете ввиду этот участок: "...достаточно инвертировать результаты следующим выражением:

F2 = |F1 - 1| = |D ÷ (N + 1) - 1|"

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

Самым трудным, конечно, было обосновать и описать весь процесс.

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

Вероятнее всего if будет быстрее, в этом я с Вами полностью согласен. Однако, статья отмечена тегом "Занимательные задачи", поэтому весь описанный процесс скорее является интересным кейсом (по мнению автора), чем работой претендующей на научность или практическую полезность.

Внимание больше акцентировано на самом анализе и пути построении формул, чем на итоговом результате.

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

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

Мне кажется в математических задачах в конечном итоге бывает только один способ с небольшим количеством его вариантов.

Уже вывел. В начале этой статьи есть ссылка на нее https://habr.com/ru/post/560266/.

Уже вывел. В начале этой статьи есть ссылка на нее https://habr.com/ru/post/560266/.

Да, я собирался написать Вам, что формула работает только наполовину. Так сказать рассчитана на бесконечно расширяющуюся матрицу. А так в целом получается почти то же самое . Не исключено, что обе формулы можно сократить немного . Однако и размер без того длинной статьи тогда увеличится .

Да и основной целью работы является - показать, доказать, обосновать математически приведённые пути решения.

Да это моя ошибка в условии задачи. Я не заложил там без «внутренних дополнительных циклов», хотя это подразумевалось. Кроме того, также считалось, что циклы сами состоят из условных переходов (условие выхода или входа, причем логически это заложено на «высоком» уровне). Мне следовало это обозначить.
Отличное решение, только возможно ли в любой момент на основании координат (i, j) и размера матрицы получить значение любой ячейки? Через функцию.
Как сказал Шекспир «To Java or not to Java». Сам я без особой специализации в языках (там немного, тут немного). Но Java, обросшая легендами о зарплате в 1,5 млн. тенге и выше в Алматы, так и манит издалека.)))
Можно попробовать и так, но предполагаю, что код меньше не станет (не пробовал — может кто и выведет покороче код). Если систему координат централизировать, то придется работать с отрицательными значениями — формула(если ее можно так назвать) будет такой же громоздкой. А вычитая из максимального значения, все равно придется использовать N (максимальное значение это — N * N). Ну вообщем как-то так.
Без ifов (во всяком случае на языке высокого уровня, кто знает как на машинный язык компилируется/интерпретируется) если получится, то можно. По сути выведение единой мат.формулы
Там ниже есть условие «без условных переходов, или заготовленных данных, массивов и словарей». А элементы матрицы изначально заполнены нулями(это в первом коде есть).

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity