HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

Beárazzuk a második labort

2011.02.13. 11:35 nb

A PageRank algoritmussal számos dolgot beárazhatunk: nem csupán a weblapokat, hanem akár a nemzeti labdarúgó bajnokságok csapatait is: hu.wikipedia.org/wiki/Alternat%C3%ADv_tabella

A második labor elején implementáljunk az algoritmus egyszerű változatát a következő prezentációban mutatott "kis világra". Aki nem ismerné magát az eljárást, a 12-17 fóliákat tanulmányozza át! Itt: dev.inf.unideb.hu:8080/c/document_library/get_file

A negyedik kisbajnokság

Egy kisbajnokságot könyvelek el annak, aki először az alábbi egyszerű kódcsipetet úgy egészíti ki, hogy a 4 lapra ezeket a PR jóságokat kapja:

nbatfai@hallg:~/c$ ./pr
0.090909
0.545455
0.272727
0.090909
Sok kezdő van az évfolyamban, szóval nem kell cifrázni, mehet a szorzás a main függvénybe. Használjuk és persze egészítsük ki az alábbi két függvényt!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S itt pedig ugyanannak a fordítási egységnek (forrásfájlnak) a vége:

A forráscsipet csak képben van kitéve, hogy legyen egy kis izometrikus tapasztalata a hallgatónak.

4 komment

Címkék: google pagerank norma mátrix szorzása vektorral kisbajnokság

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr572657583

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

basecamp 2011.02.14. 17:31:00

#include <stdio.h>
#include <math.h>

void
kiir (double tomb[], int db)
{
int i;
for (i=0; i<db; i++)
printf("PageRank [%d]: %lf\n", i, tomb[i]);
}

double tavolsag(double pagerank[],double pagerank_temp[],int db)
{
double tav = 0.0;
int i;
for(i=0;i<db;i++)
tav +=abs(pagerank[i] - pagerank_temp[i]);
return tav;
}

int main(void)
{
double L[4][4] = {
{0.0, 0.0, 1.0 / 3.0, 0.0},
{1.0, 1.0 / 2.0, 1.0 / 3.0, 1.0},
{0.0, 1.0 / 2.0, 0.0, 0.0},
{0.0, 0.0, 1.0 / 3.0, 0.0}
};

double PR[4] = {0.0, 0.0, 0.0, 0.0};
double PRv[4] = {1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0};

long int i,j,h;
i=0; j=0; h=5;

for (;;)
{
for(i=0;i<4;i++)
PR[i] = PRv[i];
for (i=0;i<4;i++)
{
double temp=0;
for (j=0;j<4;j++)
temp+=L[i][j]*PR[j];
PRv[i]=temp;
}

if ( tavolsag(PR,PRv, 4) < 0.00001)
break;
}
kiir (PR,4);
return 0;

}

nb · http://fersml.blog.hu 2011.02.15. 13:39:18

PRv[i]+=L[i][j]*PR[j]; -vel a temp-et kivágva, long és h felesleges után a laboron csinosítva a kisbajnokság elkönyvelve.

Taksi 2012.09.25. 14:40:20

Pagerank megoldás:
pastebin.com/Jr6Xfw1f

Az órán nem voltam figyelmes, és a kiír rossz tömböt írt ki (és rosszul). Így már stimmel.

0.0909090917789224
0.5454545428134066
0.2727272736287482
0.0909090917789224

Czérna Márk Attila 2013.02.27. 11:36:41

#include <stdio.h>
#include <math.h>

void
kiir (double tomb[], int db)
{
int i;
for (i=0; i<db; i++)
printf("PageRank [%d]: %lf\n", i, tomb[i]);
}

double tavolsag(double pagerank[],double pagerank_temp[],int db)
{
double tav = 0.0;
int i;
for(i=0;i<db;i++)
tav +=abs(pagerank[i] - pagerank_temp[i]);
return tav;
}

int main(void)
{
double L[4][4] = {
{0.0, 0.0, 1.0 / 3.0, 0.0},
{1.0, 1.0 / 2.0, 1.0 / 3.0, 1.0},
{0.0, 1.0 / 2.0, 0.0, 0.0},
{0.0, 0.0, 1.0 / 3.0, 0.0}
};

double PR[4] = {0.0, 0.0, 0.0, 0.0};
double PRv[4] = {1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0};

long int i,j,h;
i=0; j=0; h=5;

for (;;)
{
for(i=0;i<4;i++)
PR[i] = PRv[i];
for (i=0;i<4;i++)
{
double temp=0;
for (j=0;j<4;j++)
temp+=L[i][j]*PR[j];
PRv[i]=temp;
}

if ( tavolsag(PR,PRv, 4) < 0.00001)
break;
}
kiir (PR,4);
return 0;

}
süti beállítások módosítása