Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 02.11.2020
Сообщений: 5
1

Алгоритм PageRank в С

24.01.2021, 23:57. Показов 708. Ответов 1

Author24 — интернет-сервис помощи студентам
Может ли кто-нибудь помочь перевести алгоритм из псевдокода в С? Код работает, но результаты не совпадают с теми что должны быть. Есть ли какие-то недочеты в переводе формул?

Алгоритм PageRank в С



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
float *calculateRank(GraphT *graph, float d, float diffPR, int maxIterations, int N) {
 
    // float Nf = (float)N;
    float previousRank[N];
    float *pageRank = malloc(sizeof(float) * N);
 
    for (int i = 0; i < N; i++) {
        pageRank[i] = 1 / N;
    }
 
    int iterations = 0;
 
    float diff = diffPR;
 
    float sum = 0;
    float incoming = 0;
    float outgoing = 0;
    float diffSum = 0;
 
    while (iterations < maxIterations && diff >= diffPR) {
 
        iterations++;
        diffSum = 0;
 
        for (int u = 0; u < N; u++) {
            previousRank[u] = pageRank[u]; 
        }
 
        for (int i = 0; i < N; i++) {
            sum = 0;
            
            for (int j = 0; j < N; j++) {
 
                if (adjacent(graph, j, i)) {
 
                    incoming = countIncomingLinks(graph, i) / sumIncomingLinks(graph, j);
                    outgoing = countOutgoingLinks(graph, i) / sumOutgoingLinks(graph, j); 
 
                    sum = sum + (previousRank[i] * incoming * outgoing);
                }
            }
            pageRank[i] = ((1 - d) / N) + (d * sum);
        }
 
        for (int k = 0; k < N; k++) {
            diffSum = diffSum + fabsf(pageRank[k] - previousRank[k]); 
        }
 
        diff = diffSum;
    }
 
    return pageRank; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2021, 23:57
Ответы с готовыми решениями:

PageRank
Я человек в большей мере непосвящённый в тонкости продвижения сайтов. Раскрывал свою тему в...

27.09 ап PageRank
Идёт полным ходом, значения по бару уже видны. Изменения как на мордах, так и на внутряке. ...

АП PageRank
Ну вот, наконец-таки. Дождались. Голосуем и отписываемся. Предыдущую...

pagerank
нашел таблицу про pagerank. в ней утверждают что ссылка с сайта с pagerank 6 делает твоей странице...

1
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
25.01.2021, 14:24 2
Опишите задачу самостоятельно. Внизу есть редактор формул. А пока замените все float на double. Возможно имеет место накопление погрешности вычислений.
0
25.01.2021, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2021, 14:24
Помогаю со студенческими работами здесь

Определение PageRank
Приветствую. Имеется код C# определение PageRank сайта. Не выводит pr, хочется знать где ошибка,...

PageRank стал 0
Как-то совсем неожиданно для меня PageRank с 5, 30 октября, стал 0. Только сейчас заметил. Вообще...

PageRank и nofollow
Буду краток С недавнего времени ссылочный вес, передаваемый страницам уменьшается, если на сайте...

Повышаем PageRank
Набросал небольшую статейку о том, как увеличить ПР.

PageRank и nofollow
Хотелось бы прояснить для себя некоторые важные моменты: 1) Влияет ли количество исходящих...

Google PageRank (PR)?
Создал портал для желающих открыть салон красоты, ни как не могу понять из чего складывается PR . С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru