Algo1C: Решение алгоритмических задач на базе 1С:Предприятие [Часть #4]

23.09.24

Разработка - Математика и алгоритмы

Решаем новые задачи из LeetCode и CodeWars!

Йо, меня зовут Наби. Заранее благодарю за чтение и желаю продуктивно провести время! Если после прочтения возникнут вопросы, пожелания или предложения, то буду рад ознакомиться со всем в комментариях!


Предисловие:

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

Перед началом чтения решения задачи, хочу призвать каждого к самостоятельному решению задачи, чтобы после вы могли сравнить своё решение с моим и обсудить это в комментариях. Буду рад послушать ваше мнение! Давайте, приступим!


Новое в конфигурации Algo1C (Последние 5 версий):

Актуальную версию конфигурации вы можете загрузить здесь (Нажмите на строку)

- 0.5 : Добавлена возможность выбирать контекст исполнения кода, например: НаСервере или НаКлиенте

- 0.4 : Исправлена ошибка при выводе содержимого исключения

- 0.3 : Добавлена возможность сохранять и загружать задачи; Внесены небольшие изменения в интерфейс

- 0.2 : Исправлена ошибка при выводе результата (Отдельная благодарность SAShikutkin)

 


Решение задач:

 
 Задача 1

 Платформа: CodeWars

 Название задачи: Find the Slope

 Ссылка на задачу: https://www.codewars.com/kata/55a75e2d0803fea18f00009d (Нажмите на строку)

 Сложность: 8 kyu

 Тэги: Математика, Фундаментальные, Алгебра

 Оригинальное описание задачи:

Given an array of 4 integers
[a,b,c,d] representing two points (a, b) and (c, d), return a string representation of the slope of the line joining these two points.

For an undefined slope (division by 0), return undefined . Note that the "undefined" is case-sensitive.
 

a:x1
b:y1
c:x2
d:y2



Assume that [a,b,c,d] and the answer are all integers (no floating numbers!).

Slope: https://en.wikipedia.org/wiki/Slope

Пояснение:

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

Для наглядности приведу в пример иллюстрацию из Вики, чтобы было понятно что это такое!

Для того чтобы найти угловой коэффициент прямой, нам достаточно воспользоваться формулой:

Где дельта (Δ) Y это Y2 - Y1, и точно также дельта (Δ) X это X2 - X1.

И затем попросту делим одно на другое без хвоста, чтобы получить целое число!

Давайте попробуем!


Решение:

Суть очень проста. В первую очередь проверим возможно ли получить какое либо решение, например из X2 вычтем X1. Если ответ будет равен нулю то это попросту значит что точки на одном месте относительно текущего измерения. Ну и если всё хорошо то просто применим формулу и получим ответ. Вот как это будет выглядет в коде:

A = 1;
B = 2;
C = 3;
D = 4;
//
Если C - A = 0 Тогда
	Вывод = "Нет решения";
Иначе
	Вывод = Цел((D-B)/(C-A));
КонецЕсли; 

Заключение:

Мне очень нравятся чисто математические задачи. Конкретно эта тоже была весьма познавательной и интересной!

 
 Задача 2
 
 Задача 3
 
 Задача 4
 
 Задача 5

Заключение:

Ну что ж, пока на этом всё, надеюсь статья была увлекательной для вас, благодарю за внимание. Подключайтесь к решению алгоритмических задач вместе со мной, делитесь вашим мнением и решениями в комментариях! Увидимся в новой статье!

Алгоритмы Математика Оптимизация кода LeetCode CodeWars

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3157    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7544    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3102    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    10896    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4354    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    3519    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9041    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1950534 24.09.24 11:18 Сейчас в теме
Прикольно... В 96м году я разработал уникальный алгоритм расчета и погашения взаимной задолженности предприятий. На объемах ну грубо 20 тыс организаций 100 тыс долгов он менее чем за минуту выводил оптимальные цепочки погашения. Использовались битовые матрицы, все математические операции были переведены в булевы выражения для повышения скорости расчетов. Ну и так далее. Решение уникальное, а эти задачи до сих пор являются ну такими мягко говоря важнецки-важнецкими в мире расчетов и денег.

И чё?

Сегодня я сижу и пишу чушь вроде ВЫБРАТЬ ПЕРВЫЕ 100 ИЗ Справочник.Номенклатура ГДЕ Наименование ПОДОБНО "Телевизор%"

И получаю 2,5к долларов в мес.

А то наше решение оказалось никому не нужным даже за 300-400 долларов в мес

Жиза....
TheNabiulla; smit1c; +2 Ответить
Оставьте свое сообщение