• Как считывать текст с переносом строк и хранить все в переменной?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Не совсем понятно в чем проблема:
    text = "Строка 1\n"   # считываем строку с переносом
    text += "Строка 2\n"  # добавляем еще строку с переносом
    text += "Строка 3\n"  # ...
    print(text)   # печатаем весь текст с переносами строк
    # Строка 1
    # Строка 2
    # Строка 3
    Ответ написан
    5 комментариев
  • Алгоритм для нахождения количества пересечений отрезков в последовательности(списке)?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Заведите массив из нулей. Для каждого отрезка сделайте +1 в координату его левого конца и -1 в координату, следующую за правым концом.

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

    Это если вам надо весь массив, как в примере, выводить. Не знаю специфику вашей задачи, может эффективнее будет класть в массив пары {координата, +-1} и сортировать. Потом точно также обойти слева направо поддерживая счетчик.
    Ответ написан
    4 комментария
  • Почему не работает сортировка в telegram боте на python?

    @twistfire92
    Python backend developer
    А не проще ли было использовать random.shuffle()?
    Ответ написан
    3 комментария
  • Перевод фото таблицы в матрицу из 0 и 1?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    цикл по y
      цикл по х
        матрица[x, y] = цвет пикселя черны? 1 : 0
    Ответ написан
    Комментировать
  • Перевод фото таблицы в матрицу из 0 и 1?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Нет тут никаких алгоритмов. Тупо пройдитесь по изображению двумя циклами и заполните соответствующую ячейку нулем или еденицей.

    На изображении квадратики размера 2x2, между ними один пиксель пустой. И по границам еще пустые пиксели. Если обрезать 1 пиксель справа и снизу, то получится, что каждой ячейке соответствует квадрат 3x3: или целиком белый, или с 4-мя черными пикселями в правом нижнем углу.

    Соответственно, достаточно проверять пиксель с координатами 3*i+1, 3*j+1 для получения значения ячейки [i][j] (все индексы с 0).

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

    Если изображение с артефактами сжатия, то можно брать среднее между 4-мя пикселями 3*i+x, 3*j+y (x,y=1..2) по всем трем компонентам (RGB) и смотреть, что оно сильно отличается от черного. Для этого делаете еще 2 вложенных цикла по x и y, там прибавляете значение цветов пикселя в переменную, потом делите на 12 и сравниваете, допустим, с 200. Если меньше - это черный квадрат, если больше - то белый.
    Ответ написан
    2 комментария
  • Поиск целых корней кубического уравнения по заданным коэффициентам?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Во-первых, для таких больших коэффициентов вы в long long не влезаете, если в лоб считать.

    Можно проверить в 2 этапа. Подсчитать A=a*x+b, B=c*x+d. Потом проверить что A*x*x = -B. Но тут нужно заранее отсечь случаи, когда abs(A) > abs(B)/(x*x). Тогда переполнений не будет.

    Во-вторых, как же сложно у вас разбор случаев идет. Я не могу разобраться, что там происходит. Там наверняка опечатка, но я даже читать не хочу. Перепишите, пожалуйста. Вам надо найти самый старший ненулевой коэффициент и перебирать его делители. Плюс добавить корень 0, если этот коэффициент не d. Это делается сильно проще так:

    if (d != 0) {
      n = d;
    } else {
      s.push_back(0);
      if (c != 0) {
        n = c;
      } else if (b != 0) {
       n = b;
      } else {
       n = a;
      }
    }
    if (n == 0) {cout << "-1"; return}
    Ответ написан
    2 комментария
  • Возможность упаковки кругов в прямоугольник?

    Adamos
    @Adamos
    Взять бумажку.
    Нарисовать пример двух вписанных в прямоугольник окружностей.
    Подумать.
    Заподозрить, что точка соприкосновения окружностей всегда будет лежать на линии, соединяющей их центры. Доказать это.
    Провести линию между центрами окружностей и перпендикуляры от центров к сторонам прямоугольника.
    Сообразить, что нужно просто определить, влезет ли линия между центрами в габариты прямоугольника минус радиусы окружностей...
    Немножко посчитать.
    Ответ написан
    1 комментарий
  • Начальное движение Unity 2d?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Вы можете двигаться по оси, и против оси.

    Соответственно вектор вашего движения должен быть либо отрицательным, либо положительным.

    Напишите функцию, которая будет выдавать рандомно либо 1 либо -1 и домножайте на результат выполнения этой функции на вектор.
    Ответ написан
    Комментировать
  • Разбиение строки по условию Python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    s = '10N30W20N'
    result = re.findall('\d+[NSEW]', s)
    Ответ написан
    Комментировать
  • Разбиение строки по условию Python?

    @dzhebrak
    В указанном примере проще всего с помощью регулярного выражения:

    import re
    
    text = '10N30W20N'
    result = re.findall(r'\d+[A-Z]', text)
    print(result)
    Ответ написан
    Комментировать