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,870 questions

51,793 answers

573 users

How to generate N random numbers between min and max into an array with C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <ctime>

#define SIZE 7

int getRandom(int min, int max) {
    return (rand() % (max - min + 1)) + min; 
}

void GenerateNRandomNumbers(int N, std::vector<int>& vec, int min, int max) {
    for (int i = 0; i < N; i++) {
        vec[i] = getRandom(min, max);
    }
}

void printCombination(const std::vector<int>& vec, int size, int combinations, int resi, std::vector<int>& result, int veci) {
    if (resi == combinations) {
        for (int j = 0; j < combinations; j++) {
            std::cout << result[j] << " ";
        }
        std::cout << "\n";
        return;
    }

    if (veci >= size) {
        return;
    }

    result[resi] = vec[veci];
    printCombination(vec, size, combinations, resi + 1, result, veci + 1);

    printCombination(vec, size, combinations, resi, result, veci + 1);
}

void generateCombinations(const std::vector<int>& vec, int size, int combinations) {
    std::vector<int> result(size);

    printCombination(vec, size, combinations, 0, result, 0);
}

int main() {
    srand(static_cast<unsigned int>(time(NULL)));
    std::vector<int> vec(SIZE);
    int N = SIZE;
    int combinations = 3;
    int size = vec.size();

    GenerateNRandomNumbers(N, vec, 1, 30);

    std::cout << "vec: ";
    for (int i = 0; i < N; i++) {
        std::cout << vec[i] << " ";
    }
    std::cout << "\n";

    generateCombinations(vec, size, combinations);
}

  
  
/*
run:
    
vec: 29 11 21 17 8 20 4 
29 11 21 
29 11 17 
29 11 8 
29 11 20 
29 11 4 
29 21 17 
29 21 8 
29 21 20 
29 21 4 
29 17 8 
29 17 20 
29 17 4 
29 8 20 
29 8 4 
29 20 4 
11 21 17 
11 21 8 
11 21 20 
11 21 4 
11 17 8 
11 17 20 
11 17 4 
11 8 20 
11 8 4 
11 20 4 
21 17 8 
21 17 20 
21 17 4 
21 8 20 
21 8 4 
21 20 4 
17 8 20 
17 8 4 
17 20 4 
8 20 4 
   
*/

 



answered Sep 24, 2024 by avibootz
edited Sep 24, 2024 by avibootz

Related questions

1 answer 109 views
2 answers 111 views
1 answer 94 views
1 answer 94 views
1 answer 106 views
...