2010-09-05 92 views
1

我需要算法生成随机复数请帮助我知道该怎么生成随机数,但随机复数混淆我随机复数

+6

你想要什么分布的随机数来自? – 2010-09-05 08:59:13

+0

@Joey:你是什么意思的时间间隔?复数不具有自然排序,所以没有与实数相同的间隔。 – 2010-09-05 09:17:17

+1

@Joey:就像模数和论点一样,但如果你用这些做一些天真的事情,即使这是想要的,你也不会得到一个统一的分布。关键在于,如果不知道所需的分配方式,就不可能知道最佳方法。 – 2010-09-05 09:41:19

回答

8

我会简单地生成两个随机数,并使用一个用于实部,一个用于虚部。

5
  1. 生成2张随机数(X,Y)(使用内置rand/rnd/random class),其中x是实数部分,y是虚数部分。

  2. 创建一个复数类(具有一个构造函数实部和虚参数)

  3. 使用来自步骤1的2张随机数来创建复杂的数字x + ý

0

1.产生两个数字向量,一个是real_vector,另一个是imaginary_vector的大小,如MAX_SIZE,随机生成不同的种子。

2.随机使用任何分布随机移动向量(real_vector + imaginary_vector)中的数字让我们说使用std :: random_shuffle(均匀分布)。

3.随机生成一个索引并为MAX_SIZE应用模运算符,并从第一个数组中选择索引,该索引将提供您的随机数的实数部分。

4.使用步骤3获得你的随机数的虚部。

5.使用从步骤3和步骤4获得的编号创建一个复数,并存储在一个容器中。

6.go到第3步,检查你是否想要更复杂的数字;如果没有,然后中断;