A Random Shuffle Engine

/ Kali Linux  *Aircrack-ng suite  *Responder.py… /

.

Implementacija funkcije u cilju nasumičnog permutovanja unetih elemenata datog niza. Osnova se zasniva na ideji Fišer-Jejtsovog mešanja (Fisher-Yates shuffle), poznatijeg i kao Knutovo mešanje (Knuth shuffle). Utvrđeni mehanizam radi na uzimanju slučajnog uzorka elementa i zamene iste na samom vrhu niza, te nakon toga ceo postupak se ponavlja i primenjuje na ostatak niza.

Po difoltu radi putem system rand funkcije, koja ipak ne predstavlja idealno kriptografsko nasumično rešenje.

.

#ifndef RandomShuffle_Included

#define RandomShuffle_Included

#include <algorithm>

#include <cstdlib>

template <typename RandomIterator>

void RandomShuffle(RandomIterator begin, RandomIterator end);

.

template <typename RandomIterator, typename RandomGenerator>

void RandomShuffle(RandomIterator begin, RandomIterator end, RandomGenerator rnd);

.

template <typename RandomIterator, typename RandomGenerator>

void RandomShuffle(RandomIterator begin, RandomIterator end, RandomGenerator rnd) {

for (RandomIterator itr = begin; itr != end; ++itr)

std::iter_swap(itr, itr + rnd() % (end – itr));

}

.

template <typename RandomIterator>

void RandomShuffle(RandomIterator begin, RandomIterator end) {

RandomShuffle(begin, end, std::rand);

}

#endif

Debugging Mode


Pratite diskusiju/Subscribe
Obaveštavaj/Notify

0 Comments / Komentara
Najstarije/Oldest
Najnovije/Newest Izglasano/Most Voted
Inline Feedbacks
View all comments