• Как перевести dict в dataframe и наоборот?

    @o5a
    import pandas as pd
    
    data = {
    "слово": 1,
    "не": 2,
    "воробей": 30
    }
    
    df = pd.DataFrame(data.items(), columns = ['word', 'value'])
    print(df)

    Но как уже заметили, не понятно, зачем тут нужен словарь, если это просто подряд идущие значения. По факту это просто список.
    Ответ написан
    1 комментарий
  • Что такое сервер в клиент-серверном чате?

    Griboks
    @Griboks
    1. Назначаете одно из устройств сервером.
    2. Работаете с классическим клиент-серверным приложением.
    Ответ написан
    Комментировать
  • Что такое сервер в клиент-серверном чате?

    hint000
    @hint000
    у админа три руки
    тогда зачем вообще в клиент-серверном чате p2p передача?
    Чтобы не напрягать сервер (и его канал в интернет). Одно дело гонять через сервер короткие текстовые сообщения, и совсем другое - большие файлы.
    Ответ написан
    Комментировать
  • Как перевести массив и jsonb объект, возвращаемые функцией postgres, в список строк и словарь c#?

    Bobsans
    @Bobsans
    Full-Stack Developer
    Там ошибка потому что ты уже все прочитал вот в этом месте:
    (from IDataRecord r in pgreader1
        select (string)r["Compound"]
        ).ToList();

    и взял оттуда только "Compound" а "DoseInstruction" улетело в никуда
    Ответ написан
    Комментировать
  • Как изменить тип столбца и имеющиеся строки используя данные из другой таблицы?

    @galaxy
    ALTER TABLE progress ADD COLUMN subject_id INT;
    
    UPDATE progress p SET p.subject_id = s.subject_id 
      FROM subjects s
     WHERE p.subject = s.subject;
    
    -- ALTER TABLE progress DROP COLUMN subject;
    Ответ написан
    Комментировать
  • Как построить граф по матрице?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    а весом рёбер будет выступать расстояние между этими полями. для того чтобы после построения этого графа выбрать в нём 2 вершины и найти между ними кратчайший путь ... Двигаться по карте можно только по горизонтали и по вертикали.


    Это какой-то бред. Начало фразы подразумевает, что ребра есть между всеми парами вершин, продолжение говорит, что все ребра длины 1 между соседними клетками. Я предполагаю что тут именно второй вариант.

    Во-первых, занумеруйте все клетки. Подойдет простая формула вроде i+m*j

    Вот у вас уже есть n*m вершин в графе. Теперь добавьте ребра. Для каждой клетки (два цикла) посмотрите 4 соседние клетки. Если обе клетки - ., то добавьте из текущей клетки ребро в соседнюю.

    Соседей удобно перебирать, если завести константные массивы для смещений:
    const int dx[4]= {1, 0, -1, 0};
    const int dy[4]= {0, 1, 0, -1};


    Тогда для клетки (i, j) можно перебрать всех соседей одним циклом на 4 итерации - (i+dx[k], j+dy[k]). Надо только не забыть проверить на выход за границы матрицы.

    Ну и вам надо написать функцию типа AddEdge(int u, int v) которая будет в удобную для вас структуру данных добавлять ребра. Граф удобно хранить в виде списков смежности. На C++ это можно сделать просто std::vector<std::vector<int>> и добавлять соседей через vector::push_back. Это на практике работает быстрее всяких связных списков.

    И у вас будет три вложенных цикла - внешние по всем клеткам, а внутренний по четырем направлениям. Внутри вы проверяете, что сосед по этому направлению есть и между клетками можно пройти. В этом случае вызывайте AddEdge.

    А можно вообще граф не строить. Берете ваш алгоритм поиска кратчайшего пути (BFS, Dijkstra или A*) и там везде, где перебираются соседи одной вершины, вставляете код проверки четырех направлений через dx/dy. Вершины можно или нумеровать их координатами, и тогда все массивы пометок будут двумерными, или можно использовать формулу u = i+j*m, (i,j) = (u%m, u/m) для преобразования координат в номер вершины и назад.

    А еще есть всякие алгоритмы, которые работают сильно быстрее за счет использования того факта, что у вас не произвольный граф, а сетка в матрице. Jump Point Search - один из таких алгоритмов. В нем граф умышленно не строится и работа идет непосредственно в матрице.
    Ответ написан
    Комментировать
  • Как построить граф по матрице?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Зачем строить граф? У каждой ячейки есть только соседи сверху-снизу-слева-справа.
    А главное, какой может быть вес у ребер? Если соединены только смежные по стороне ячейки, то все ребра одинакового веса.
    https://ru.wikipedia.org/wiki/A* - посмотри вот такую штуку
    Ответ написан
    Комментировать