![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu
![]() |
Vrste prikaza
![]() |
|
![]() |
#11 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
![]()
@Ivan
Ok. Mada mislim da je kod ocigledan. Kod:
class random ... Klasa ima templejt metodu get overload-ovanu da bih u zavisnosti od tipa argumenata koristio odgovarajuce "distribucije". Znaci samo integral i floating-point tipovi dolaze u obzir sve ostalo je compile time error. http://en.cppreference.com/w/cpp/num...t_distribution Kod:
typedef std::pair<std::size_t, std::size_t> tpnum; std::vector<tpnum> numbers; Kod:
numbers.resize(N); std::for_each(std::begin(numbers), std::end(numbers), [](tpnum& e){ e = std::make_pair(0u, random::get(0u, 100u)); }); Kod:
for(auto& it : numbers) { it.first = std::count_if(std::begin(numbers), std::end(numbers), [&it](const tpnum& e){ return it.second == e.second; }); } Kod:
std::sort(std::begin(numbers), std::end(numbers), [](const tpnum& l, const tpnum& r){ return l.second > r.second; }); Kod:
auto end = std::unique(std::begin(numbers), std::end(numbers), [](const tpnum& l, const tpnum& r){ return l.second == r.second; }); Kod:
std::sort(std::begin(numbers), end, [](const tpnum& l, const tpnum& r){ return l.first > r.first; }); I na kraju ispisujem prvih F elemenata. Mada moze da se desi da broj unikata bude manji od F-a ali nece fejlovati. |
![]() |
![]() |
Bookmarks sajtovi |
Tagovi |
c++, how to, pomoc, programiranje |
|
|