Simulations sur quatre sites

Deux modèles simplifiés du web⚓

Résultats⚓

Simulations avec 10 000 itérations

5 liens

7 liens

A

B

C

D

A

B

C

D

20%

20%

40%

20%

37%

31%

13%

19%

Question : Pour chacun des modèles de web, écrivez le code servant à déterminer et afficher la fréquence de visites de chacun des quatre sites. Testez et vérifiez avec les résultats fournis ci-dessus.⚓

Solution
ComplémentCode premier schéma : 5 liens⚓
1
from random import *
2
def PR(n):
3
    nA=0
4
    nB=0
5
    nC=0
6
    nD=0
7
    start=randint(1,4)
8
    if start==1:
9
        page="A"
10
        nA=1
11
    elif start==2:
12
        page="B"
13
        nB=1
14
    elif start==3:
15
        page="C"
16
        nC=1
17
    else:
18
        page="D"
19
        nD=1
20
    for i in range(n):
21
        if page=="A":
22
            page="B"
23
            nB=nB+1
24
        elif page=="B":
25
            page="C"
26
            nC=nC+1
27
        elif page=="C":
28
            alea=randint(1,2)
29
            if alea==1:
30
                page="A"
31
                nA=nA+1
32
            else:
33
                page="D"
34
                nD=nD+1
35
        else:
36
            page="C"
37
            nC=nC+1
38
    fA=nA/(nA+nB+nC+nD)
39
    fB=nB/(nA+nB+nC+nD)
40
    fC=nC/(nA+nB+nC+nD)
41
    fD=nD/(nA+nB+nC+nD)
42
    print('fA =',fA,'fB =',fB,'fC =',fC,'fD =',fD)
43
PR(10000)
ComplémentCode second schéma : 7 liens⚓
1
from random import *
2
def PR(n):
3
    nA=0
4
    nB=0
5
    nC=0
6
    nD=0
7
    start=randint(1,4)
8
    if start==1:
9
        page="A"
10
        nA=1
11
    elif start==2:
12
        page="B"
13
        nB=1
14
    elif start==3:
15
        page="C"
16
        nC=1
17
    else:
18
        page="D"
19
        nD=1
20
    for i in range(n):
21
        if page=="A":
22
            alea=randint(1,3)
23
            if alea==1:
24
                page="B"
25
                nB=nB+1
26
            elif alea==2:
27
                page="C"
28
                nC=nC+1
29
            else:
30
                page="D"
31
                nD=nD+1
32
        elif page=="B":
33
            page="A"
34
            nA=nA+1
35
        elif page=="C":
36
            alea=randint(1,2)
37
            if alea==1:
38
                page="A"
39
                nA=nA+1
40
            else:
41
                page="D"
42
                nD=nD+1
43
        else:
44
            page="B"
45
            nB=nB+1
46
    fA=nA/(nA+nB+nC+nD)
47
    fB=nB/(nA+nB+nC+nD)
48
    fC=nC/(nA+nB+nC+nD)
49
    fD=nD/(nA+nB+nC+nD)
50
    print('fA =',fA,'fB =',fB,'fC =',fC,'fD =',fD)
51
PR(10000)