C++ Programming Multiple Choice Questions & Answers (MCQs) on “Generators”.
1. What are the Generators in C++?
a) An object that generates uniformly distributed numbers
b) An object that generates a number from a given sequence
c) An object that generates the smallest number from a given range
d) An object that generates unique numbers
Answer: a
Clarification: Generators are objects that generates uniformly distributed numbers which help in generating random numbers.
2. What are Distributions in C++?
a) Objects that converts a sequence into a sequence having an ascending order
b) Objects that converts a sequence into a sequence having specific random variable distribution
c) Objects that converts a sequence into a sequence having a descending order
d) Objects that converts a sequence into a sequence having only the smallest, largest and median
Answer: b
Clarification: Distributions are objects that convert the sequence generated by the generator into a sequence which has a specific random variable distribution like uniform, normal, binomial, etc.
3. Which header file is used for generating random numbers?
a)
b)
c)
d)
Answer: d
Clarification:
4. What is Pseudo-random number engines?
a) Uses user input for random number generation
b) Uses an algorithm that does not require any initial seed to generate random numbers
c) Uses initial seed based algorithm to generate random numbers
d) Random number generates depends on the program
Answer: c
Clarification: Pseudo-random number engines are used to generate random numbers based on an initial seed provided to them.
5. How many Pseudo-random number engines are there?
a) 1
b) 2
c) 3
d) 4
Answer: c
Clarification: There are three types of Pseudo-random number engines based on the algorithm they use. They are linear_congruential_engine, mersenne_twister_engine and subtract_with_carry_engine.
6. What is linear_congruential_engine?
a) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
b) Pseudo-random number engine that generates random unsigned integers
c) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using lagged Fibonacci generator
d) Pseudo-random number engine that generates random signed integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
Answer: b
Clarification: linear_congruential_engine is a simple Pseudo-random number engine that generates random unsigned integer using the basic algorithm.
7. What are different operations are used in Pseudo-random number engines?
a) operator()
b) min()
c) max()
d) all of the mentioned
Answer: d
Clarification: Pseudo-random number engines use three operations operator() that generates a random number, min() that returns minimum value returned by member operator() and max() returns the maximum value.
8. What is mersenne_twister_engine?
a) Pseudo-random number engine that generates random unsigned integers
b) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
c) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using lagged Fibonacci generator
d) Pseudo-random number engine that generates random signed integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
Answer: b
Clarification: mersenne_twister_engine is a Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm.
9. What is subtract_with_carry_engine?
a) Pseudo-random number engine that generates random unsigned integers
b) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
c) Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using lagged Fibonacci generator
d) Pseudo-random number engine that generates random signed integers in the range [0, 2w-1] for some w using Mersenne Twister algorithm
Answer: c
Clarification: subtract_with_carry_engine is a Pseudo-random number engine that generates random unsigned integers in the range [0, 2w-1] for some w using lagged Fibonacci generator.
10. What is a Random number generator?
a) A generator that generates deterministic random numbers
b) A generator that generates both non-deterministic random numbers and deterministic random numbers
c) A generator that generates non-deterministic random numbers
d) A generator that generates a simple random number
Answer: c
Clarification: Random number generator is a random number generator which generates non-deterministic random numbers.
11. What is random_device?
a) A pseudo-random number generator
b) Time-dependent random number generator
c) Simple random number generator
d) A true random number generator
Answer: d
Clarification: random_device is a true random number generator not the pseudo random number generator.
12. Which algorithm is used in subtract_with_carry_engine?
a) Mersenne Twister algorithm
b) Lagged fibonacci generator algorithm
c) Either the Mersenne Twister algorithm or Lagged fibonacci generator algorithm
d) Fibonacci generator
