Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RandomNodes {
- Random rand = new Random();
- //Method that generates 3 random numbers from 0 to size-1 and returns these in an ArrayList
- private ArrayList<Integer> numbers(int size){
- ArrayList<Integer> nums = new ArrayList<Integer>();
- nums.add(rand.nextInt(size-1));
- nums.add(rand.nextInt(size-1));
- nums.add(rand.nextInt(size-1));
- return nums;
- }
- public ArrayList<Node>gen(int size) {
- //ArrayList containing all the nodes
- ArrayList<Node> nodes = new ArrayList<Node>();
- Random rand = new Random();
- int num;
- //Creates new nodes and adds it to the ArrayList
- for (int i = 0; i<size; i++){
- //Gives it an id from 0 to "size"
- nodes.add(new Node(i));
- }
- //Iterate through the list of nodes
- //log(nodes.size()+"");
- //Iterates n times the size of nodes
- for(int i=0;i<nodes.size();i++){
- log("den ytre løkka har gått "+ i + " ganger");
- //Iterates three times as we want three edges to each node
- for(int j=0;j<3;j++){
- System.out.println("Indre løkke går");
- numbers(size);
- //Adding random number representing the edge's weight
- int weight1 = rand.nextInt(100);
- int weight2 = rand.nextInt(100);
- int weight3 = rand.nextInt(100);
- //remembers the numbers for later use
- ArrayList<Integer> randomNumbers = numbers(size);
- ArrayList<Integer> tmp = new ArrayList<Integer>();
- //adds the already used nodes in ArrayList
- for(int k = 0;k<tmp.size();k++){
- tmp.add(randomNumbers.get(k));
- }
- //Loops trough the saved numbers
- for(int k = 0;k<tmp.size();k++){
- //Checks if the numbers has been used already
- if(randomNumbers.get(k)!=tmp.get(k)){
- //If the haven't been used, then proceed as normal
- }
- //If the number has been used, we need to generate new ones
- //And we do this by calling the method "numbers"
- else randomNumbers = numbers(size);
- Node neighbour1 = null;
- Edge edge1 = new Edge(weight1,neighbour1);
- Node neighbour2 = null;
- Edge edge2 = new Edge(weight2,neighbour2);
- Node neighbour3 = null;
- Edge edge3 = new Edge(weight3,neighbour3);
- //Maximum of edges for a node
- int max = 3;
- System.out.println("Prøver å adde nabo1");
- //trying to add the edge to a given node
- nodes.get(i).add(edge1,max);
- System.out.println("Prøver å adde nabo2");
- nodes.get(i).add(edge2,max);
- System.out.println("Prøver å adde nabo3");
- nodes.get(i).add(edge3,max);
- System.out.println(nodes.get(i).toString());
- }
- }
- }
- return nodes;
- }
- private void log(String nodes) {
- System.out.println(":"+nodes);
- }
- }
Add Comment
Please, Sign In to add comment