为简单起见,假设用户输入 n = 2,我想要发生的是将两个(或 n 个)随机数相乘。它应该适用于任何 n,并且随机数介于 0 和 1 之间。
I have been using this for random numbers between 0 and 1
(double)rand()/(double)RAND_MAX for this.
So to break it down further
n= 1
random_number = random_number
n = 2
random_number = random_number * random_number
n = 3
random_number = random_number * random_number * random_number
n = ...
random_number = random_number * random_number * ...
问题是随机数也必须是唯一的。比如对于n=2的情况,应该是...
random_number = (unique)random_number * (unique)random_number
为了使问题更复杂,我们还假设我有 m 个(不是静态的)分区,并且我创建了一个大小为 m^n 的 vector 。我还需要创建这个大小为 m^n 的 vector ...
vector = [rand*rand, rand*rand, rand*rand, rand*rand]
for the case when n = 2 m = 2
我将如何在 C++ 中执行此操作?
最佳答案
获取n
随机数只是重复使用 rand()
生成它们。如果您希望它们是唯一的,请将它们放在 std::set<int>
中。 .这样,您可以检查它是否已经生成。一旦你有了独特的集合,就可以对它们做任何你需要做的处理——即让它们落在 0 和 1 之间,然后它们相乘。
关于c++ - 生成n个随机变量,并将它们相乘C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746110/