1 #ifndef __DIADES__UTILS__RANDOM__HH__ 2 #define __DIADES__UTILS__RANDOM__HH__ 51 void selectNValues(
unsigned int min,
unsigned int max,
unsigned int n, set<unsigned> & result);
67 template <
typename Iterator>
76 while((first != last) && (index != selectedIndex))
106 template <
typename Iterator,
typename Predicate>
114 vector<Iterator> pointers;
115 for(
Iterator it = first; it!=last; ++it)
119 pointers.push_back(it);
127 return pointers[selectedIndex];
144 template <
typename InputIterator,
typename Predicate,
typename OutputIterator>
145 void selectNRandomElements(InputIterator first, InputIterator last,Predicate pred,
unsigned number,OutputIterator out)
150 vector<InputIterator> pointers;
151 for(InputIterator it = first; it!=last; ++it)
155 pointers.push_back(it);
158 if(number <= pointers.size())
160 set<unsigned> selection;
162 for(
const unsigned & index : selection)
164 *out = *pointers[index];
void selectNRandomElements(InputIterator first, InputIterator last, Predicate pred, unsigned number, OutputIterator out)
unsigned initialiseSeed()
double generateRandomDouble(double lower, double upper)
void selectNValues(unsigned int min, unsigned int max, unsigned int n, set< unsigned > &result)
Namespace of the Diades project.
Iterator selectRandomElement(unsigned number, Iterator first, Iterator last)
ConstIterator on the Net.
void initialiseRandomGenerator(unsigned int seed)
long generateRandomValue(long lower, long upper)