59 lines
1.4 KiB
Java
59 lines
1.4 KiB
Java
package Presenter.Generator;
|
|
|
|
import Model.Line;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.Observable;
|
|
import java.util.Random;
|
|
|
|
/**
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
*
|
|
* @Author: Armin Wolf
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
* @Date: 01.08.2017.
|
|
*/
|
|
public class DatasetGenerator extends Observable{
|
|
|
|
private Double m;
|
|
private Double b;
|
|
private Random random;
|
|
|
|
public DatasetGenerator(Double m, Double b){
|
|
this.m = m;
|
|
this.b = b;
|
|
random = new Random();
|
|
random.setSeed(9999);
|
|
}
|
|
|
|
public DatasetGenerator(){
|
|
random = new Random();
|
|
}
|
|
|
|
|
|
public LinkedList<Line> generateDataset(){
|
|
LinkedList<Line> lines = new LinkedList<>();
|
|
m = 1 + random.nextDouble();
|
|
b = random.nextDouble();
|
|
|
|
|
|
for (int i=1;i<101;i++){
|
|
double y = (random.nextGaussian() * 100) % 100;
|
|
double signal = m * i + b;
|
|
signal *= -1;
|
|
|
|
Line line = new Line((double) i, signal - y);
|
|
line.setId(i-1+"");
|
|
lines.add(line);
|
|
}
|
|
String[] ret = {"generator","Es wurden "+100+" Daten generiert mit den Parametern",
|
|
"</br> <b>m</b> = "+m+"",
|
|
"</br> <b>b</b> = "+b+""};
|
|
setChanged();
|
|
notifyObservers(ret);
|
|
return lines;
|
|
}
|
|
|
|
}
|
|
|