Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,970 questions

51,912 answers

573 users

How to select random three digits from anywhere in a 6-digit number in C++

2 Answers

0 votes
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>  // for find

// Function to pick 3 random unique digits from a 6-digit number
std::string getRandomThreeDigits(int num) {
    std::string s = std::to_string(num);

    // Ensure it's exactly 6 digits
    if (s.size() != 6) {
        return "Error: number must be 6 digits";
    }

    std::vector<int> indices;
    while (indices.size() < 3) {
        int pos = rand() % 6;  // Random index 0–5
        if (find(indices.begin(), indices.end(), pos) == indices.end()) {
            indices.push_back(pos);
        }
    }

    std::string result;
    for (int i : indices) result += s[i];
    
    return result;
}

int main() {
    srand(time(0));  // Seed random generator

    int num = 123456;  // Example 6-digit number
    std::string randomThreeDigits = getRandomThreeDigits(num);

    std::cout << "Random three digits: " << randomThreeDigits;
}


 
/*
run:
 
Random three digits: 264
 
*/

 



answered Nov 25, 2025 by avibootz
0 votes
#include <iostream>
#include <string>
#include <algorithm>
#include <random>   // for std::mt19937 and std::random_device

// Function to shuffle digits and return 3 random digits
std::string getRandomThreeDigits(int num) {
    std::string s = std::to_string(num);

    // Ensure it's exactly 6 digits
    if (s.size() != 6) {
        return "Error: number must be 6 digits";
    }

    // Create a random engine (seeded with nondeterministic source)
    static std::random_device rd;
    static std::mt19937 gen(rd());

    std::shuffle(s.begin(), s.end(), gen);    // Shuffle digits
    
    return s.substr(0, 3);               // Take first 3 after shuffle
}

int main() {
    int num = 123456;  // Example 6-digit number
    std::string randomThree = getRandomThreeDigits(num);

    std::cout << "Random three digits: " << randomThree << std::endl;
}


 
/*
run:
 
Random three digits: 416
 
*/

 



answered Nov 25, 2025 by avibootz
...