Member 13906237 Ответов: 2

Как написать кодирование Python на C для централизации


попытка преобразовать код python в c для централизации betweenness

Что я уже пробовал:

# Betweenness Centrality", by Ulrik Brandes.
from collections import deque

def brandes(V, A):
    "Compute betweenness centrality in an unweighted graph."
    # Brandes algorithm
    # see http://www.cs.ucc.ie/~rb4/resources/Brandes.pdf
    C = dict((v,0) for v in V)
    for s in V:
        S = []
        P = dict((w,[]) for w in V)
        g = dict((t, 0) for t in V); g[s] = 1
        d = dict((t,-1) for t in V); d[s] = 0
        Q = deque([])
        Q.append(s)
        while Q:
            v = Q.popleft()
            S.append(v)
            for w in A[v]:
                if d[w] < 0:
                    Q.append(w)
                    d[w] = d[v] + 1
                if d[w] == d[v] + 1:
                    g[w] = g[w] + g[v]
                    P[w].append(v)
        e = dict((v, 0) for v in V)
        while S:
            w = S.pop()
            for v in P[w]:
                e[v] = e[v] + (g[v]/g[w]) * (1 + e[w])
                if w != s:
                    C[w] = C[w] + e[w]
    return C

Mohibur Rashid

Начните с изучения языка Си

2 Ответов

Рейтинг:
2

KarstenK

Ты должен Изучайте C/C++ чтобы преобразовать код. C++ - это расширение языка C. Это не так уж трудно, когда знаешь другие языки.

Очевидная разница заключается в том, что вы используете много фигурных скобок. ;-)

Ваша проблема заключается в том, что вы используете некоторые функции, которые не так часто встречаются в C. мой совет заключается в том, что вы ищете в интернете какой-то код замены. Проверьте, действительно ли вам нужен C или вы можете использовать C++ и некоторые библиотеки классов.


Рейтинг:
1

OriginalGriff

Мы не являемся службой преобразования кода: и перевод с одного языка на другой обычно не дает хорошего кода на целевом языке в любом случае. Гораздо лучший подход-написать новый код на целевом языке, используя оригинал в качестве спецификации.

В любом случае: начните с изучения как C, так и Python довольно хорошо: вам это понадобится, учитывая, что C не имеет никакого понятия о dict структура данных в Python...