我有两个问题想要问。
1. 第一个问题是,有一个 hf 数组 = {1, 4, 9, ........, n-1, n}。我想对数组中的每个元素进行平方,如 {1^2, 4^2, 9^2, ........, (n-1)^2, n^2}。
2. 还有两个数组。一个是 hf = {1, 4, 9, ........, n-1, n},另一个是 random = {2, 3, 4, ........, k-1, k}。我想要将两个数组中的每个元素相乘,得到 {1*2, 4*3, 9*4, ......., (n-1)(k-1), nk}。
实际使用的代码如下:
为了处理上述情况,我使用了'for'语句。问题在于它需要很长的时间来处理,因为在另一个for语句中有一个for语句(20000x20000次迭代)。
当我测量经过的时间时,大约需要14秒。是否有其他方法可以更短时间完成相同的事情(也许使用来自开源库的矩阵类)?我真的想优化这个过程。
1. 第一个问题是,有一个 hf 数组 = {1, 4, 9, ........, n-1, n}。我想对数组中的每个元素进行平方,如 {1^2, 4^2, 9^2, ........, (n-1)^2, n^2}。
2. 还有两个数组。一个是 hf = {1, 4, 9, ........, n-1, n},另一个是 random = {2, 3, 4, ........, k-1, k}。我想要将两个数组中的每个元素相乘,得到 {1*2, 4*3, 9*4, ......., (n-1)(k-1), nk}。
实际使用的代码如下:
int np = 20000;
for (int i = 0; i < np; i++)
{
random[i] = randomNG.GetNormal();
for (int j = 0; j < np; j++)
{
sigma[j] = Math.Pow(hf[j], 2);
hf[j] = hf[j] * random[i];
sigma_super[j] = sigma_super[j] + sigma[j];
hf_super[j] = hf_super[j] + hf[j];
}
}
为了处理上述情况,我使用了'for'语句。问题在于它需要很长的时间来处理,因为在另一个for语句中有一个for语句(20000x20000次迭代)。
当我测量经过的时间时,大约需要14秒。是否有其他方法可以更短时间完成相同的事情(也许使用来自开源库的矩阵类)?我真的想优化这个过程。
n / 2
次迭代中完成它。 - Ediac