package de.wwwu.awolf.presenter.util;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collections;
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 r
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 r
Elementige zufällige Stichprobe an Geraden
*/
public static List run(List set, Double r) {
if (set.isEmpty()) {
return Collections.emptyList();
} else {
int index = 0;
List sampled = new ArrayList<>();
for (int i = 0; i < r; i++) {
index = random.nextInt(set.size());
sampled.add(set.get(index));
}
return sampled;
}
}
}