Guest User

Untitled

a guest
Nov 20th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.85 KB | None | 0 0
  1. public class RandomNodes {
  2.    
  3.     Random rand = new Random();
  4.    
  5.     //Method that generates 3 random numbers from 0 to size-1 and returns these in an ArrayList
  6.     private ArrayList<Integer> numbers(int size){
  7.        
  8.         ArrayList<Integer> nums = new ArrayList<Integer>();
  9.        
  10.         nums.add(rand.nextInt(size-1));
  11.         nums.add(rand.nextInt(size-1));
  12.         nums.add(rand.nextInt(size-1));
  13.        
  14.         return nums;
  15.     }
  16.  
  17.     public ArrayList<Node>gen(int size) {
  18.         //ArrayList containing all the nodes
  19.         ArrayList<Node> nodes = new ArrayList<Node>();
  20.         Random rand = new Random();
  21.        
  22.         int num;
  23.         //Creates new nodes and adds it to the ArrayList
  24.         for (int i = 0; i<size; i++){
  25.             //Gives it an id from 0 to "size"
  26.                 nodes.add(new Node(i));
  27.         }
  28.         //Iterate through the list of nodes
  29.         //log(nodes.size()+"");
  30.                 //Iterates n times the size of nodes
  31.                 for(int i=0;i<nodes.size();i++){
  32.                     log("den ytre løkka har gått "+ i + " ganger");      
  33.                    
  34.                         //Iterates three times as we want three edges to each node
  35.                         for(int j=0;j<3;j++){
  36.                                
  37.                                 System.out.println("Indre løkke går");
  38.                                
  39.                                 numbers(size);
  40.                                
  41.                                 //Adding random number representing the edge's weight
  42.                                 int weight1 = rand.nextInt(100);
  43.                                 int weight2 = rand.nextInt(100);
  44.                                 int weight3 = rand.nextInt(100);
  45.                            
  46.                                 //remembers the numbers for later use
  47.                                 ArrayList<Integer> randomNumbers = numbers(size);
  48.                                 ArrayList<Integer> tmp = new ArrayList<Integer>();
  49.                                 //adds the already used nodes in ArrayList
  50.                                 for(int k = 0;k<tmp.size();k++){
  51.                                     tmp.add(randomNumbers.get(k));
  52.                         }
  53.                         //Loops trough the saved numbers
  54.                         for(int k = 0;k<tmp.size();k++){
  55.                                 //Checks if the numbers has been used already
  56.                                 if(randomNumbers.get(k)!=tmp.get(k)){
  57.                                     //If the haven't been used, then proceed as normal
  58.                                 }
  59.                                 //If the number has been used, we need to generate new ones
  60.                                 //And we do this by calling the method "numbers"
  61.                                 else  randomNumbers = numbers(size);
  62.                                
  63.                                 Node neighbour1 = null;
  64.                                 Edge edge1 = new Edge(weight1,neighbour1);
  65.                                 Node neighbour2 = null;
  66.                                 Edge edge2 = new Edge(weight2,neighbour2);
  67.                                 Node neighbour3 = null;
  68.                                 Edge edge3 = new Edge(weight3,neighbour3);
  69.                
  70.                                 //Maximum of edges for a node
  71.                                 int max = 3;
  72.                                
  73.                                 System.out.println("Prøver å adde nabo1");
  74.                                 //trying to add the edge to a given node
  75.                                 nodes.get(i).add(edge1,max);
  76.                                 System.out.println("Prøver å adde nabo2");
  77.                                 nodes.get(i).add(edge2,max);
  78.                                 System.out.println("Prøver å adde nabo3");
  79.                                 nodes.get(i).add(edge3,max);
  80.                                 System.out.println(nodes.get(i).toString());
  81.                         }
  82.                 }
  83.         }
  84.         return nodes;
  85. }
  86.  
  87.     private void log(String nodes) {
  88.         System.out.println(":"+nodes);
  89.     }
  90.    
  91. }
Add Comment
Please, Sign In to add comment