1   import java.util.Scanner;
2   /** 
3    * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
4    * RandomSurfer ohne Leerzeilen und Kommentare
5    */
6   public class RandomSurferCode {
7       public static void main(String[] args) {
8           Scanner scanner = new Scanner(System.in);
9           Page[] pages = new Page[scanner.nextInt()];
10          for (int i=0; i<pages.length; i++) {
11              pages[i] = new Page(scanner.next(), scanner.nextInt());
12          }
13          for (int i=0; i<pages.length; i++) {
14              for (int j=0; j<pages[i].getDegree(); j++) {
15                  int k = scanner.nextInt();      
16                  pages[i].setLink( j, pages[k-1] ); 
17              }
18          }
19          for (int i=0; i<pages.length; i++) {
20              for (int j=0; j<pages[i].getDegree(); j++) {
21                  Page p = pages[i].getLink(j);
22              }
23          }
24          int totalVisits = scanner.nextInt();        
25          Page currentPage = pages[0];                
26          int visitCount = 0;                         
27          while ( visitCount++ < totalVisits ) {
28              if (Math.random() < 0.90) {
29                  int k = (int)( Math.random() * currentPage.getDegree());
30                  currentPage = currentPage.getLink(k);
31              }
32              else {
33                  int k = (int)( Math.random() * pages.length );
34                  currentPage = pages[k];
35              }
36              currentPage.incrementCount();           
37          }
38          for (int i=0; i<pages.length; i++) 
39              System.out.println( "page " + pages[i].getURL() + ": " + pages[i].getCount()
40                  + " visits (" + ( pages[i].getCount() / (totalVisits/100.0) ) + " %)");
41      }
42  }
43