Как я могу перемешать массив заданного размера и сравнить его с другим массивом того же размера в C ++ - PullRequest
0 голосов
/ 09 апреля 2019

предположим, у меня есть массив A = {212,323,234,567,545,765}, и теперь я хочу перетасовать этот массив так, чтобы значения располагались случайным образом

, как после перестановки, он может быть A = {234,765,212,545,323,567}

Я не понимаю, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2019

Чек std::shuffle и std::equal.В документации есть несколько примеров, которые вам помогут.

0 голосов
/ 09 апреля 2019

Для базового тасования вы можете использовать std :: shuffle .

#include <algorithm>
#include <array>
#include <random>
#include <iterator>
#include <iostream>

int main()
{
    // Create mersenne twister RNG
    std::random_device rd;
    std::mt19937 g(rd());
    // Initialize Array A
    std::array<int, 6u> A{ 212,323,234,567,545,765 };
    // Print A
    std::copy(A.begin(), A.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\n";
    // Shuffle A
    std::shuffle(A.begin(), A.end(), g);
    // Print A
    std::copy(A.begin(), A.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\n";
}
...