Рубрика «массивы»

Всех приветствую!

Продолжаем знакомиться с TradingView, языком Pine Script и мудростями, которые помогут вам создавать собственные пользовательские индикаторы и стратегии. Соответственно, использовать их в торговле на любом рынке – будь то криптоактивы, национальный рынок акций или т.п.

Почитать предыдущие части-статьи можно по ссылкам ниже: 

Введение

Я не применяю Go в коммерческой разработке, я недавно начал изучать и применять этот язык для пет-проектов и разного рода опытов. В этой статье речь пойдёт о слайсах. Пример, который мы будем рассматривать, мне показал коллега, за что ему большое спасибо.

Что такое "слайс"?

Говоря простым языком, слайсы — это надстройка, интерфейс над массивами, который позволяет нам более гибко с ними работать. Мы можем работать со слайсом как с динамическим массивом: добавлять или удалять элементы, то есть менять его размер. При этом под каждым слайсом содержится базовый массив строго определённой длины.

Читать полностью »

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

Читать полностью »

Математика во спасение: почему рой пчел не рассыпается - 1

Изучением представителей флоры и фауны, как правило, занимаются ботаники и биологи. Однако существует множество примеров того, как те или иные существа становились объектом живейшего интереса со стороны физиков, инженеров и математиков. Каждый организм можно назвать системой, которая оказывает определенное влияние на окружающую среду и оказывается под влиянием этой же среды. Все эти взаимодействия тем или иным образом описываются различными химическими реакциями, физическими процессами и математическими формулами. Все становится куда сложнее, когда подобных индивидуальных систем становится много, как в улье пчел или в гнезде муравьев. В таком случае, помимо индивидуального взаимодействия со средой добавляется взаимодействие между индивидами. Группа ученых из Колорадского университета в Боулдере (США) решили изучить рой пчел во время зарождения колонии. Особенность такого роя в том, что множество особей формируют скопление, которое свисает с ветки или другого объекта. Какова динамика такой системы, как ведут себя пчелы, и что помогает им держаться вместе? Ответы на эти вопросы мы найдем в докладе ученых.Читать полностью »

Самое очевидное объяснение: индекс — это смещение относительно начала массива. Так элементы массива легче адресовать в памяти.

Проверим это на C.

#include <stdio.h>
int main()
{
    int data[3] = {1, 2, 3};
    int i = 0;
    printf("Array address: %pn", data);
    do {
        printf("Array[%u] = %pn", i, (void *)(&data[i]));
        i++;
    } while(i < 3);
}

Получим результат:

Array address: 0x7ffd7c514a6c
Array[0] = 0x7ffd7c514a6c
Array[1] = 0x7ffd7c514a70
Array[2] = 0x7ffd7c514a74

Как первый (нулевой) элемент, так и сам массив находятся по одному и тому же адресу, поскольку 0-й элемент удалён на 0 элементов от начала. Эта связь между указателями и массивами в C настолько тесная, что их даже можно рассматривать вместе.

Однако это ответ на вопрос «зачем», а не «почему». Нумеровать массивы с нуля стали не сразу. Удивительно, но развитие такого простого вопроса не умещается в предложении или абзаце.
Читать полностью »

Хорошего телескопа должно быть много: история создания Square Kilometre Array, настоящее и будущее проекта - 1

В конце июня мы писали о поломке телескопа «Хаббл» и немного неясном будущем его преемника «Джеймса Уэбба». Сегодня поговорим о целой системе телескопов, которая получила название Square Kilometre Array (SKA).

Это огромный, распределенный по поверхности Земли массив радиотелескопов, общая площадь которого должна была составить 1 км2. Спустя некоторое время после предварительной оценки проекта этот показатель решили увеличить до 5 км2. Сейчас SKA еще не работает, но должен начать функционировать в ближайшем будущем. Ну а теперь — подробнее о проекте.
Читать полностью »

Храним числа экономно - 1 Недавно в одном из проектов встала задача: есть набор множеств (Set), которые надо достаточно эффективно хранить в оперативной памяти. Потому что множеств много, а памяти мало. И с этим надо что-то делать.

Так как язык, на котором всё это написано — C#, то есть нюансы. А именно, что стандартный HashSet<int> на хранение одного числа тратит 16 байт, также влияет филл фактор. Есть более эффективные реализации (когда-нибудь и про них напишу), но с другой стороны, можно же тупо хранить в массивах, по 4 байта на число (требуется хранить инты), что достаточно эффективно. Но можно ли уменьшить ещё?

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

Есть набор неотрицательных уникальных интов (32 бита). Требуется хранить их эффективно в оперативной памяти, из операций — создание набора и получение всех элементов. Не нужно получать элементы по индексу, добавлять новые или удалять.

В статье будет много букв и цифр и ни одной картинки (кроме упакованного котика на КДПВ).
Читать полностью »

CoLab блокнот с примерами

Возможно сделать скользящее окно (rolling window, sliding window, moving window) по массивам NumPy на языке программирования Python без явных циклов. В данной статье рассматривается создание одно-, двух-, трех- и N-мерных скользящих окон по массивам NumPy. В результате скорость обработки данных увеличивается в несколько тысяч раз и сравнима по скорости с языком программирования С.

Cкользящее окно применяется в: обработке изображений, искусственных нейронных сетях, интернет протоколе TCP, обработке геномных данных, прогнозировании временных рядов и т.д.

Отказ от ответственности: в исходном коде могут быть ошибки! Если вы видите ошибку, пожалуйста, напишите мне.

Читать полностью »

image

Любому программисту будет полезно понимание различных структур данных и способов анализа их производительности. Но на практике мне ни разу не пригождались АВЛ-деревья, красно-чёрные деревья, префиксные деревья, списки с пропусками, и т.д. Некоторые структуры данных я использую только для одного конкретного алгоритма и ни для чего больше (например, кучи для реализации очереди с приоритетом в алгоритме поиска пути A*).

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

  • Общие массивы данных (Bulk data) — способ эффективного хранения большого количества объектов.
  • Слабые ссылки (Weak reference) (или дескрипторы (handle)) — способ обращения к объектам в bulk data без сбоев программы в случае, если объект удалён.
  • Индексы — способ быстрого доступа к отдельным подмножествам в bulk data.
  • Массивы массивов — способ хранения объектов bulk data с динамическими размерами.

Я посвящу несколько статей тому, как я обычно реализую все эти структуры. Давайте начнём с простейшей и самой полезной — bulk data.Читать полностью »

6 нежданчиков от Джулии - 1

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

Во время поисков наткнулся на курс программирования для экономистов (помимо Джулии там есть и Питон). Опытные могут пробежаться по экспресс курсу или ознакомиться с книгой How to Think Like a Computer Scientist

Далее предоставлен перевод материала из блога Christopher Rackauckas 7 Julia Gotchas and How to Handle Them

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js