папа Стасик
тыжпрограммистНа сайте с января 2018tele.click/origin_of_species

Я бы ввёл эмпирический критерий: для тех проектов, которые на Python делать тяжело. Например, в python нет поддержки многопоточности из коробки, нет ручного управления памятью (сборка мусора). Или для разработки интерфейсов десктопных приложений - есть более зрелые языки и инструменты. Или тех проектов, которые нужно распространять "в бинарях". При этом не соглашусь, что компьютерное зрение попадает в этот список: python, наряду с С и C++, является наиболее документированными языком для написания программ с использованием OpenCV. Тут не стоит забывать, что python предоставляет обёртки к нативным вызовам, поэтому, например, OpenCV работает так же быстро, как в программах на C++. То же касается, например, библиотеки numpy, отбёртки для tensorflow.

Язык Kotlin разрабатывается компанией JetBrains, поэтому наиболее подходящей IDE будет их продукт IntelliJ IDEA. Community Edition - бесплатная версия.

Помогите с задачей по python — 1 ответ

Дан набор точек с координатам точек points_x и points_y. Нужно найти такую точку p с нулевой координатой y (то есть с координатами вида (x,0) , что расстояние от неё до самой удалённой точки из исходного набора (расстояние евклидово) минимально

Пример

1 для [0, 2], [1, 1]

2 для [0, 2, 4], [1, 1, 1]

2 для [0, 4, 4], [1, 1, 1]

+1

Давайте представим, как будет выглядеть функция расстояния до самой удалённой точки в зависимости от координаты X. Это будет непрерывная (но не гладкая!) ломаная, составленная из кусков парабол, которая будет иметь изломы в местах смены самой удалённой точки. Значит искать минимум можно среди переломов и в минимумах парабол. Минимумы парабол находятся строго в местах проекции точек на ось X. А потенциальные места излома можно найти, решив уравнения для всех пар точек: d(p1, x) = d(p2, x)

Вопрос, наверное, не в возможности, а в том, насколько это подходящий инструмент. Задача рисования дорог упирается в, собственно, моделирование дорог. И средствами классического машинного зрения в общем виде эту задачку, увы, не решить. Погодные условия, разметка, типы грунта, снег... Сейчас такие штуки решают с помощью машинного обучения, а для этого нужны подходящие инструменты. Для старта вполне может хватить python+sklearn. К тому же питон синтаксически похож на паскаль :)

Правами на трансляцию обладает компания World Chess (https://worldchess.com/), в прошлый раз они устраивали платную трансляцию на сайте. Но многие "умельцы" устраивали бесплатную ретрансляцию с комментариями на Youtube (собирали пожертвования). Эти ретрансляции банили, но они появлялись быстрее, чем их успевали закрывать :)

Один из вариантов - при выбранном окне нажать [Win] + [вправо/влево]. Окно займёт половину экрана, для второй половины будет предложен выбор из остальных открытых окон.

Если предположить, что речь идёт о пограммировании, то структуры - это тип данных, представляющий собой упорядоченную совокупность различных простых типов значений фиксированной длины. В языке pascal структуры называются записями (record). Изначально структуры хранили ТОЛЬКО данные, однако сегодня это уже не так, и структуры могут также содержать методы. Теперь по частям.

Простой тип данных - например, целое число (integer), логический тип (true/false), символ (char), число с плавающей запятой (float, double). В зависимости от языка этот список может быть разным, но обычно это просто числа и символы, иногда (если поддерживает язык) - указатели. Для любого простого типа данных заранее известен размер - float занимает 4 байта памяти, boolean и char - один.

Различных - если у вас совокупность переменных одинаковых простых типов, то для этого не обязательно заводить структуру, достаточно массива.

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

Как правило, размер структуры равен суммы размеров простых типов, составляющих её, получить его можно с помощью оператора sizeof. Это не всегда абсолютно верно, но часто близко к правде :)

Например, так можно объявить структуру и создать экземпляр в Си-подобных языках (C, C++, C#, ...).

struct Dog {

float age;

char name[4];

size_t legsCount;

};

Dog dogInstance{2.5f, "Rex!", 4};

Оператор sizeof(Dog) скорее всего вернёт вам значение 16 = 4 байта на float + 4 * 1 байт на char + 8 байт на size_t (на 64-битной платформе).

Соответственно, если вы создаёте массив структур (Dog dogs[2]) или более сложную структуру, состоящую из простых:

struct TwoDogs {

Dog dog1;

Dog dog2;

};

То размер массива или этой структуры будет равен сумме размеров структур, которые в них входят - 16 + 16 = 32 байта.

Смотрим на электроотрицательность.

Нас интересуют не абсолютные числа, а относительные её значения для атомов N, H, B, F.

В паре N-H азот является более электроотрицательным, поэтому он отнимает (акцептор) электроны у водорода (донор).

В паре B-F бор (донор) раздаёт свои электроны трём атомам фтора (акцептор).

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

В совремнных версиях Windows "из коробки" вам доступны как минимум 3 языка для написания скриптов:

  • CMD (BATCH) скрипты. Это древняя технология времён MS DOS.
  • PowerShell - https://ru.wikipedia.org/wiki/PowerShell - язык скриптов для управления ОС в кучей разных плюшек, например, подгрузкой C# библиотек
  • bash (Ubuntu) - https://ru.wikipedia.org/wiki/Bash - в Windows теперь есть честный bash и честное ядро Linux.

Опять же, всё зависит от задач. Возможно, имеет смысл посмотреть в сторону python или Lua.