44 lines
1.2 KiB
Java
44 lines
1.2 KiB
Java
package de.wwwu.awolf.presenter.util;
|
|
|
|
import de.wwwu.awolf.model.Line;
|
|
import de.wwwu.awolf.model.Point;
|
|
|
|
import java.io.Serializable;
|
|
import java.security.SecureRandom;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
*
|
|
* @Author: Armin Wolf
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
* @Date: 26.06.2017.
|
|
*/
|
|
public class RandomSampler {
|
|
|
|
private static SecureRandom random = new SecureRandom(); // Compliant for security-sensitive use cases
|
|
|
|
private RandomSampler() {
|
|
super();
|
|
}
|
|
|
|
/**
|
|
* Diese Methode liefert eine <code>r</code> Elementige zufällige Stichprobe an Geraden.
|
|
*
|
|
* @param set Die gesammtmenge der Geraden aus denen gewählt werden soll
|
|
* @param r Anzahl der zu wählenden Geraden
|
|
* @return <code>r</code> Elementige zufällige Stichprobe an Geraden
|
|
*/
|
|
public static <T extends Object> List<T> run(List<T> set, Double r) {
|
|
int index = 0;
|
|
List<T> sampled = new ArrayList<>();
|
|
for (int i=0; i<r; i++) {
|
|
index = random.nextInt(set.size());
|
|
sampled.add(set.get(index));
|
|
}
|
|
return sampled;
|
|
}
|
|
|
|
}
|