Changeset 1618 for branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java
- Timestamp:
- 07/16/14 18:07:05 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java
r1592 r1618 1 1 package de.ugoe.cs.autoquest.tasktrees.alignment.algorithms; 2 2 3 3 import java.util.ArrayList; 4 4 import java.util.Random; 5 5 6 public class NumberSequence 6 public class NumberSequence { 7 7 private int[] sequence; 8 8 private int signature; 9 9 10 10 public NumberSequence(int size) { 11 11 12 12 sequence = new int[size]; 13 13 } 14 14 15 15 public int[] getSequence() { 16 16 return sequence; 17 17 } 18 18 19 public void setSequence(int[] sequence) { 19 20 this.sequence = sequence; 20 21 } 22 21 23 public int getSignature() { 22 24 return signature; 23 25 } 26 24 27 public void setSignature(int signature) { 25 28 this.signature = signature; 26 29 } 27 28 public void printSequence() 29 { 30 31 public void printSequence() { 30 32 for (int i = 0; i < sequence.length; i++) { 31 33 System.out.format("%5d", sequence[i]); … … 33 35 System.out.println(); 34 36 } 35 36 public NumberSequence shuffle() {37 38 public NumberSequence shuffle() { 37 39 NumberSequence result = new NumberSequence(sequence.length); 38 40 result.setSequence(this.sequence); 39 41 Random rgen = new Random(); 40 41 for (int i =0; i<result.sequence.length; i++) {42 43 44 45 42 43 for (int i = 0; i < result.sequence.length; i++) { 44 int randomPosition = rgen.nextInt(result.sequence.length); 45 int temp = result.sequence[i]; 46 result.sequence[i] = result.sequence[randomPosition]; 47 result.sequence[randomPosition] = temp; 46 48 } 47 49 return result; 48 50 51 } 52 53 // TODO: This can be done faster 54 public int containsPattern(ArrayList<NumberSequence> pattern) { 55 int i = 0; 56 int count = 0; 57 int[] pat1 = pattern.get(0).getSequence(); 58 int[] pat2 = pattern.get(1).getSequence(); 59 notmatched: while (i < sequence.length - pat1.length) { 60 if (sequence[i] == pat1[0] || sequence[i] == pat2[0]) { 61 for (int j = 0; j < pat1.length; j++) { 62 if (sequence[i + j] != pat1[j] 63 && sequence[i + j] != pat2[j]) { 64 continue notmatched; 65 } 66 } 67 count++; 68 } 69 i++; 70 } 71 return count; 49 72 } 50 73
Note: See TracChangeset
for help on using the changeset viewer.