Generate a random number with no repeating digits?
问题 I'd like to generate a random number with each digit being in range from 0-9 and not repeating itself. Assume finite length of 4. 1234 qualifies, each composite digit is unique. 1123 does not, 1 is repeated How can this be done please? 回答1: To generate the digits: std::vector<int> vec = {0,1,2,3,4,5,6,7,8,9}; // or initialize from array if not c++11 std::random_shuffle(vec.begin(), vec.end()); vec.resize(4); And to join the digits into a single number: int number = 0; for (auto i = vec.begin(