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; } } }