Задать вопрос
Ответы пользователя по тегу Программирование
  • Как пофиксить SQL запрос?

    @bizon2000
    Java-программист
    Можно сделать условное добавление строки с нулевым счетчиком и потом выполнить обновление строки для изменения счетчика:
    INSERT INTO player_mob_kills (player_id, mob_id, count)
        SELECT :player_id, :mob_id, 0
            WHERE NOT EXISTS(SELECT *
                                 FROM player_mob_kills
                                 WHERE player_id = :player_id
                                   AND mob_id = :mob_id
                            )
    UPDATE player_mob_kills
        SET count=count + :count
        WHERE player_id = :player_id
          AND mob_id = :mob_id;
    Ответ написан
    Комментировать
  • Как сформировать уже повернутую матрицу из массива?

    @bizon2000
    Java-программист
    Формула для преобразования, изображенного на рисунке (т.е., не поворот на 90 градусов, а транспонирование):

    index = 1 + [i / m] + n * (i % m)

    В этой формуле индекс i меняется от 0 до size - 1 (size - размер массива), n - число столбцов (а после преобразования - строк), m - число строк (а после преобразования - столбцов), [i / m] - целая часть от деления i на m, i % m - остаток от деления i на m.

    Очевидно, что m = [ (size - 1) / n ] + 1

    При size = 12, n = 4 (соответственно, m = 3), получим следующую последовательность значений index:
    i     [i / 3]    4 * (i % 3)    index
    0:  1 +  0    +     4 * 0    =    1
    1:  1 +  0    +     4 * 1    =    5
    2:  1 +  0    +     4 * 2    =    9
    3:  1 +  1    +     4 * 0    =    2
    4:  1 +  1    +     4 * 1    =    6
    5:  1 +  1    +     4 * 2    =   10
    6:  1 +  2    +     4 * 0    =    3
    7:  1 +  2    +     4 * 1    =    7
    ...

    , т.е., как в примере работающего варианта
    Ответ написан
    Комментировать