Идеальные квадраты и комплексные числа

Публикация № 320848 25.12.14

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

Идеальные квадраты комплексные числа

В статье показано, как реализовать в 1С операции с комплексными числами, и приведен пример решения задачи на поиск идеальных квадратов.
 Трудно предположить, что когда-нибудь в бухгалтерском учете понадобятся действия с мнимой единицей. Тем не менее, ничто не мешает нам с помощью средств встроенного языка реализовать операции с комплексными числами.
 Хранить число мы будем в двумерном массиве, в одной ячейке - вещественную часть, в другой - мнимую. Вот и первая функция, которая применяется для создания числа указанного вида.
Function zNumber(Re,Im) Export
   arr=new array();
   arr.Add(Re);
   arr.Add(Im);
   
   return arr;
EndFunction  
В качестве аргументов мы передаем значения вещественной и мнимой части и функция возвращает нам заполненный массив. Теперь реализуем умножение комплексных чисел.
Function zMult(a,b) Export
   arr=new array();
   arr.Add(a[0]*b[0]-a[1]*b[1]);
   arr.Add(a[0]*b[1]+a[1]*b[0]);
   
   return arr;
EndFunction   

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

Function zPower(z,p) Export
   
   if p=0 then
      arr=new array;
      arr.Add(1);
      arr.Add(0);
      return arr;
   endif;   
   
   if p=1 then
      return z;
   endif;   
   
   if (p%2)=0 then
      t=zPower(z,p/2);
      return zMult(t,t);
   endif;   
   
   return zMult(zPower(z,p-1),z);
EndFunction   

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

Function zConjugate(z) Export
   arr=new array();
   arr.Add(z[0]);
   arr.Add(-z[1]);
   
   return arr;
EndFunction   
 Теперь с помощью этого небольшого набора решим задачу нахождения представления числа в виде суммы квадратов.
Вспомним, что согласно основной теореме арифметики любое число можно выразить в виде произведения степеней простых чисел. Представление для простого числа состоит из самого простого числа. Пример простых чисел - 2,3,5,7,11,13... А вот число 65 - составное и оно равно произведению 5 и 13. Оказывается, что греческий математик Диофант, живший в III веке нашей эры, знал, что 65 это минимальное натуральное число, которое можно представить в виде суммы квадратов двумя различными способами
  1. 65=1*1+8*8
  2. 65=4*4+7*7 
Впрочем, греки знали пифагоровы тройки и подобные наблюдения вполне ожидаемы. Интереснее другое, Диофант объяснял подобное свойство числа 65 тем, что оно есть произведение двух чисел и 13, которые в свою очередь, тоже можно выразить как сумму квадратов.Оказывается, среди простых чисел в виде суммы квадратов можно записать только числа вида 4*k+1. В частности:
  • 5 =1*1+2*2
  • 13=2*2+3*3 
Настал момент вспомнить про комплексные числа. Если число можно записать как сумму квадратов, то оно раскладывается на комплексные множители, так 5=(2+i)(2-i), a 13=(3+2i)(3-2i). Группируя комплексные множители в разложении числа 65 различными способами, мы получим два разложения на сумму квадратов. А как нам перебрать все возможные комбинации ? Предлагается следующее решение. Если в разложение входит степень двойки, то она заменяется степенью комплексного числа(1+i), если в разложение входят степени простых чисел вида 4*k+3, то эти степени объединяются в одно число Q, которое записывается в виде (Q+0*i), если в разложение входит степень простого числа вида Z=4*k+1, то оно заменяется массивом комплексных чисел (Z**i)*(Zсопряженное**(p-i)), где i меняется от 0 до p (p - степень данного простого числа в разложении)..
Приведем код функций, которые нам понадобятся для приведенного алгоритма.
Function zGenerateVar(z,p) Export
    arr=new array;
    
    zCon=zConjugate(z);
    arr.Add(zPower(z,p));
    for i=1 to (p-1) do
       arr.Add(zMult(zPower(z,i),zPower(zCon,p-i)));
    enddo;    
    arr.Add(zPower(zCon,p));    
   
    return arr;
EndFunction   

Функция РазложитьНаПростыеМножители(вхЧисло,ПростыеЧисла)
   тЧисло=новый ОписаниеТипов("Число",,,новый КвалификаторыЧисла(19,0));
   разложение=новый ТаблицаЗначений;
   разложение.Колонки.Добавить("Множитель",тЧисло);
   разложение.Колонки.Добавить("Степень",тЧисло);
   
   если ПростыеЧисла.Найти(вхЧисло)<>Неопределено тогда
          нСтр=разложение.Добавить();
         нСтр.Множитель=вхЧисло;
         нСтр.Степень=1;
         возврат  разложение;
    конецесли;
   
   Граница=(вхЧисло-вхЧисло%2)/2;
   для каждого число из ПростыеЧисла цикл
      если число > Граница тогда
         прервать;
      конецесли;      
      если вхЧисло%число=0 тогда
         нСтр=разложение.Добавить();
         нСтр.Множитель=число;
         нСтр.Степень=1;
         н=число*число;
         пока  вхЧисло%н=0 цикл
            нСтр=разложение.Добавить();
            нСтр.Множитель=число;
             нСтр.Степень=1;
            н=н*число;
         конеццикла;    
      конецесли;      
   конеццикла;   
   
   разложение.Свернуть("Множитель","Степень");
   
   возврат разложение;
КонецФункции   
 Функция zGenerateVar формирует массив комплексных чисел [(Z**i)*(Zсопряженное**(p-i))Предназначение функции РазложитьНаПростыеМножители понятно из ее названия. Аргументами функции является разлагаемое число и массив простых чисел, функция возвращает таблицу значений с колонками Множитель и Степень. Теперь проговорим необходимую последовательность действий. 
Шаг 1. Подготовить таблицу простых чисел с коэффициентами разложения простого числа на сумму квадратов.
Шаг 2 Получим таблицу разложения исследуемого числа на множители.
Шаг 3. Сформируем массив, каждый элемент, которого - это тоже массив, содержащий варианты представления степени простого числа вида Z=4*k+1. Данное разложение нам возвращает функция zGenerateVar.
Шаг 4. С помощью рекуррентной функции получим все варианты представления числа как сумму двух квадратов.
Отметим, что представление числа в виде суммы квадратов возможно только тогда, когда в его разложении присутствуют простые числа вида 4*k+1, а простые числа вида 4*k+3 имеют четную степень, то есть входят в разложение, как полный квадрат. Никаких ограничений на наличие и степень двойки в каноническом представлении числа нет. Приведем фрагмент кода, который реализует второй и третий шаг нашего алгоритма.
      Decompose=РазложитьНаПростыеМножители(i,PrimeNumber);
      arr.Clear();
      Q=1; test=0;
      for each row in Decompose do
         n=row.Множитель;
         p=row.Степень;
         if n=2 then
            z=zNumber(1,1);
            vc=new array;
            vc.Add(zPower(z,p));
            arr.Add(vc);
         else
            find=vt.Find(n,"N");
            if find.a=0 then 
            if p%2=1 then  
                test=0; 
                break;  
             endif;
             Q=Q*n;
             for j=2 to p do
                  Q=Q*n;
             enddo;   
            else
               test=test+1;
               z=zNumber(find.a,find.b);
               arr.Add(zGenerateVar(z,p));
            endif;   
         endif;   
      enddo;
 Исследуемое число хранится в переменной i. В первой строке кода мы получаем разложение на простые множители. Затем в цикле обрабатываем таблицу с найденным разложением. Если после завершения цикла переменная test равна нулю, то данное число нельзя представить как сумму квадратов. Переменная Q хранит произведение степеней простых чисел 4*k+3. Массив arr содержит варианты разложения для остальных множителей канонического представления.
Теперь приведем код рекуррентной функции для получения вариантов разложения числа на сумму квадратов.
Function zSquare(arr,level,mult,Q)
   if level = arr.Count() then
      z=mult[0];
      imax=arr.Count()-1;
      for i=1 to imax do
         z=zMult(z,mult[i]);
      enddo;
      z0=z[0]*z[0];
      z1=z[1]*z[1];
      if z0*z1>0 then
        row=GaussPairs.Add();
        if z0>z1 then   
         row.a=Q*z0;
         row.b=Q*z1;
         else
         row.a=Q*z1;
         row.b=Q*z0;
          endif;
       endif; 
      return true;
   endif;   
   for each z in  arr[level] do
     mult[level]=z;    
     zSquare(arr,level+1,mult,Q);
   enddo;  
EndFunction   
Аргументы функции это: 
  • массив с вариантами arr;
  • переменная level говорит о том с каким элементом данного массива мы работаем на текущем шаге;
  • mult - массив в нем мы собираем все множители разложения;
  • назначение переменной Q мы объяснили в предыдущем абзаце. 
 Найденные разложения хранятся в таблице GaussPairs. Как можно использовать изложенную технику. Рассмотрим решение задачи, вариант которой можно найти в проекте Эйлер. Условия нашей задачи следующие:

Найдите  целые числа x > y > z > 0 такие, что x + y, x - y, x + z, x -z, y + z, y-z все являются квадратами целых чисел.

Введем обозначения: 
Введенные обозначения

Запишем следующие тождества:
x+y=(x+z)+(y-z)
x+y=(x-z)+(y+z)
отсюда получаем
Сумма квадратов
Соотношение (x+y)+(z-y)=(x+z) можно переписать в виде 

Еще один квадрат
Теперь идея решения понятна. Ищем такие числа, квадрат которых имеет несколько представлений в виде суммы квадратов. Условию задачи будут удовлетворять те из них, для которых выполняется условие, что d^2-f^2 есть полный квадрат. Здесь можно скачать обработку, в которой реализован данный алгоритм. Обработка написана для управляемого приложения.




Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Asmody 25.12.14 17:46 Сейчас в теме
Я бы числа в структуре хранил.
Function zNumber(Re,Im) Export
   return new Structure("r,i",Re,Im);
EndFunction  

Function zMult(a,b) Export
   retrun new Structure("r,i",
        a.r*b.r - a.i*b.i,
        a.r*b.i + a.i*b.r
   );
EndFunction   
Показать


воспринимается нагляднее
2. Denis S 29.01.15 22:43 Сейчас в теме
Можете привести пример использования комплексных чисел в типовой конфе? Решали ли Вы этим примером задачу из жизни?
3. scientes 278 30.01.15 09:40 Сейчас в теме
(2) Denis S, Хороший вопрос, впрочем я предугадал его появление и начал свою заметку фразой "Трудно предположить, что когда-нибудь в бухгалтерском учете понадобятся действия с мнимой единицей." Разумеется, в типовой конфигурации комплексные числа не присутствуют и вряд ли появятся. Изложенный пример, показывает как можно на встроенном языке решать задачи, которые абсолютно далеки от изначальной области применения платформы 1С:Предприятие.
Оставьте свое сообщение

См. также

Как работает серверный вызов в 1С Промо

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

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    73043    pahich    86    

Изменения формата файлов конфигурации (CF) в 8.3.16

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

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    2279    fishca    10    

Что за ? в коде, или Секретный оператор в 1С

Математика и алгоритмы v8 Платформа 1C v8.2 Платформа 1С v8.1 1cv8.cf Бесплатно (free)

Инкремент, модуль и прочая магия, которая скрыта под символом "?"

21.10.2021    11679    SeiOkami    42    

Интересная задача на Yandex cup 2021

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

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    4243    John_d    71    

Минимализмы 3 Промо

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

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    51480    ildarovich    47    

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета v8 v8::DataMining Бесплатно (free)

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

31.08.2021    3083    dusha0020    8    

Алгоритмы распределения сумм (наивная методика, Алгоритм Кэхэна)

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

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

08.07.2021    3670    con-men    31    

Распределенные алгоритмы РИБ 1С

Математика и алгоритмы Обмен между базами 1C v8 Бесплатно (free)

Небольшое исследование на тему применимости классических распределённых алгоритмов репликации и синхронизации данных между узлами обмена РИБ 1С.

02.07.2021    1554    zhichkin    1    

Будни автоматизации или "мне нужна программка для 3D упаковки" Промо

Математика и алгоритмы Оптовая торговля v8 1cv8.cf УУ Бесплатно (free)

Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: "Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: "Ну, папа, пожалуйста, сделай мне кораблик!", папа отвечает: "Ага! - Сейчас все брошу и пойду делать тебе кораблик!". Про один такой сделанный для клиента "кораблик" и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

24.03.2014    47609    ildarovich    119    

Параллельная обработка очереди сообщений

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

Описание алгоритма обработки очереди последовательных сообщений регистрации изменений записей регистра сведений. Алгоритм может быть применим к любым объектам метаданных. Алгоритм основан на обработке объектов по их ключам.

15.06.2021    2778    zhichkin    11    

Чем воспользоваться для распознавания котиков в 1С?

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

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    3922    comol    10    

Рекурсия для начинающих

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

Рассмотрен подход к пониманию рекурсий. Приведены примеры из реальной практики.

10.02.2021    4456    szv    5    

Минимализмы 2 Промо

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

Следующая серия "минимализмов" [http://infostart.ru/public/306536/]. Также, как и в предыдущей статье, здесь приведена подборка коротких оригинальных решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

23.02.2016    52580    ildarovich    83    

Самый быстрый FizzBuzz на 1С

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

Давайте попробуем найти самое быстрое решение задачи "BuzzFizz" на 1С.

03.02.2021    1511    Donrad    23    

1С: Документооборот, Data Science и Python

Документооборот и делопроизводство Математика и алгоритмы ДО Бесплатно (free)

В статье рассказывается о создании и обучении модели Data Science на языке Python и интеграции с системой 1С: Документооборот

04.08.2020    4028    Vaganov_Alexey    10    

Параллельные вычисления расчета факториала числа N

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Распараллеливание алгоритма с помощью фоновых заданий (асинхронные вычисления)

29.06.2020    4440    Rustig    18    

Минимализмы Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Приводится подборка кратчайших решений некоторых задач. Ранее эти решения были разбросаны по комментариям к чужим публикациям.

08.10.2014    95616    ildarovich    85    

Применение математических достижений в решении сложных задач бизнеса

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

Как правило, самые сложные задачи решаются с точки зрения математики очень легко. Но чтобы найти правильное решение, важно понять бизнес-цель, которую достигает эта задача. О практическом применении математических достижений для эффективного решения сложных задач бизнеса на конференции Infostart Event 2019 Inception рассказал Дмитрий Мишнов.

25.05.2020    5272    Mishnov    17    

Партионный учет по двум количественным показателям

Математика и алгоритмы Склад и ТМЦ v8 1cv8.cf Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Особенности учета партионной системы при наличии двух количественных показателей.

26.03.2020    4893    lastcontra    5    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

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

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    7555    ildarovich    8    

Метод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок Промо

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

Одной из наиболее важных задач каждого предприятия, осуществляющего доставку грузов в крупных населенных пунктах, является сокращение издержек. Возможное решение данной проблемы заключается в сокращении пробега автотранспорта и, как следствие, уменьшении расхода ГСМ. Появляются такие вопросы ... - СКОЛЬКО НУЖНО МАШИН ДЛЯ РАЗВОЗКИ КОНКРЕТНОГО ОБЪЕМА ГРУЗА ПО АДРЕСАМ ДОСТАВКИ ? - КАК РАЗБИТЬ ТОЧКИ ДОСТАВКИ НА ОПТИМАЛЬНЫЕ ПО ПРОБЕГУ И ЗАГРУЗКЕ МАШИН МАРШРУТЫ ? ... В этой статье Вы найдете один из многих способов получить ответ на эти вопросы.

10.02.2016    68598    mi1man    23    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    7130    randomus    20    

Основные алгоритмы снабжения на простом примере

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

Надо же что-то полезное иногда писать

13.02.2020    6320    1c-intelligence    36    

Сравнение адресов: случай из практики

Математика и алгоритмы Универсальные функции v8 Россия Бесплатно (free)

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

04.01.2020    4295    AnatolPopov    7    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Обмен между базами 1C v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    72798    tormozit    29    

[После]Новогодние задачи

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

Совсем немного времени осталось до того момента, когда отзвучат куранты, шампанское будет выпито, мандарины съедены, и даже оливье закончится. Возникнет вопрос: чем бы занять неожиданно появившееся свободное время?

30.12.2019    3628    Alxby    23    

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    28759    YPermitin    63    

Иерархия без "В ИЕРАРХИИ"

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

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    16596    ildarovich    24    

Алгоритм “хвост змеи для заполнения прямоугольной области”. Промо

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

При разработке http://infostart.ru/public/275582/ столкнулся с необходимостью распределить выделенные задания на прямоугольную область календаря. В результате родился алгоритм, который может пригодиться не только мне и не только в этой задаче.

20.06.2014    27488    milkers    16    

Запрос SQL для нахождения самого большого простого числа меньше заданного

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

Данный запрос MS SQL демонстрирует некоторые возможности MS SQL Server, о которых часто неизвестно большинству программистов 1С. В тексте постараюсь объяснить интерес данного запроса (или скрипта).

16.08.2019    2445    alex_bitti    18    

Побитовые операции "на пальцах"

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

Простой пример для понимания того, как это работает.

02.08.2019    4267    nbeliaev    16    

Обработчики событий при записи объектов. Зачем и что за чем?

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

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    138314    AlbinaAAA    50    

Предметно-ориентированное проектирование (3D) в 1С. Виртуальная машина. Промо

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

Проектирование программного обеспечения - это постоянная битва за простоту.

03.06.2014    41764    Evgen.Ponomarenko    92    

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются...

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

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    6295    vandalsvq    19    

Что делает "В ИЕРАРХИИ" в запросе?

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

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    55688    YPermitin    34    

Создание отчетов с помощью СКД - основные понятия и элементы

Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    84316    ids79    30    

Решение транспортной задачи запросом Промо

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

Списание по двум последовательностям партий запросом (без программной обработки)

1 стартмани

30.04.2014    36498    bforce    22    

Реализуем Стек, Очередь и Приоритетную очередь в 1С

Математика и алгоритмы Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

24.06.2019    17443    RonX01    69    

Вычисление 200 тысяч знаков числа pi

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

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

28.05.2019    9934    Oleg_nsk    97    

Выдержки из книги Чистый код

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

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    15598    FreeArcher    108    

Парсер запросов 1С. Часть 1: Введение, разбор математических выражений Промо

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

Рано или поздно становится скучно решать типичные задачи, для которых придумана 1С. Голова пухнет от бухгалтерских терминов и очередных "хотелок" пользователей. Именно в такие моменты хочется гордо поднять голову, воскликнуть "Но я же программист!" и заняться чем-то интересным. В цикле статей я постараюсь доступно описать, как устроены парсеры в целом и на примере парсера языка запросов 1С. Требования к навыкам читающего: основы языка 1С, основы алгоритмизации.

1 стартмани

04.12.2013    31542    juntatalor    49    

Парсер таблиц по шаблону. Автоматическая корректировка парсера. Представление таблиц в виде графа.

Математика и алгоритмы Работа с интерфейсом Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Возникла такая задача: нужно нарисовать в макете шаблон таблицы, где расписано какая ячейка за что отвечает, загрузить таблицу из html и сравнить, подходит ли она под шаблон. Если да, то загрузить информацию по правилу из шаблона. Проблема в том, что в html таблица может приходить с ошибками, то есть какие то ячейки совмещены, хотя не должны. Поэтому нужно сделать так, что бы программа понимала, что таблицы похожи и где конкретно ошибки. Соответсвенно, поделил задачу на 3 этапа. 1 - это представление таблицы в виде графа, 2 - сравнение графов, 3 - забор информации. В данной статье пойдет описание пункта 1.

25.04.2019    4274    trim89    5    

Нечёткий поиск. Bitap алгоритм, модификация от Wu-Manber

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

Временами нужен нечёткий поиск в тексте, но не всегда можно использовать внешние компоненты. Данный алгоритм прост, достаточно быстр.

01.04.2019    5370    trim89    10    

Решение системы линейных уравнений

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

Пример использования объекта Расчет систем линейных уравнений.

25.03.2019    9703    scientes    9    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

Подготовка к аттестации Математика и алгоритмы v8 Бесплатно (free)

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    51835    bpc222    54    

Генератор псевдослучайных чисел с равномерным, нормальным и логнормальным распределением своими руками

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

Рассматриваем распределение случайных величин для генератора

17.03.2019    9549    vasilev2015    1    

Обсуждение двух задач на пересечение отрезков

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

Ищем общее в частностях, или задача о пересечении отрезков.

15.03.2019    6842    scientes    16    

v8: Концепция минимального изменения конфигурации для легкого обновления Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

"Лучше день потерять потом за пять минут долететь" ((с) "Крылья, ноги и хвосты") или как сделать так чтобы обновление конфигурации проходило с минимальными трудозатратами.

28.01.2013    38996    MarSeN    57    

Что такое алгоритм?

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

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    21428    mkalimulin    274    

Подготовка ребёнка к ЕГЭ по информатике. Часть шестнадцатая

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

Поиск выигрышной стратегии, завершающая статья.

22.02.2019    6290    vasilev2015    0