A Random Shuffle Engine

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


Iznesite Vaše mišljenje na predloženu temu

Polja označena zvezdicom (*) su obavezna. Uneti email neće biti javno dostupan, niti deljen s trećim licima.