我有一个伪代码,我把它变成了java代码。它是前缀平均值的计算:
Algorithm 4.1. PrefixAverages1(X)
Input: X, a 1-D numerical array of size n
1) Let A = an empty 1-D numerical array of size n
2) For i = 0 to n-1
3) Let s = X[0]
4) For j = 1 to i
5) Let s = s + X[j]
6) End For
7) Let A[i] = s /(i+1)
8) End For
Output: An n-element array A of numbers such that A[i]
is the average of elements X[0],X[1], … ,X[i]下面是我写的java代码:
public class Prefix1 {
public static void main(String[] args) {
algo1();
}
private static void algo1(){
int X[] = new int[10];
int randomNumber;
int o = 1;
for (int i=0; i<o; i++) {
randomNumber = (int) (Math.random() * 100) + 1 ;
X[i] = randomNumber;
}
int n = X.length;
int A[] = new int [n];
for (int i=0; i<n-1; ++i)
{
int s = X[0];
for (int j=1; j<i; ++j)
{
s = s + X[j];
}
A[i] = s / (i+1);
}
} 我的问题是,我不确定如何在这个数组中生成随机数,然后通过算法运行这个数组。我确信我的java代码是正确的,基于伪代码,如果有任何帮助,将不胜感激,谢谢:)
发布于 2013-11-22 20:07:54
看看你的for循环。它实际上是在说i < 1。使用数组的长度:
for (int i=0; i<X.length; i++) {
randomNumber = (int) (Math.random() * 100) + 1 ;
X[i] = randomNumber;
}发布于 2013-11-22 20:08:43
我相信这是你的问题:
int o = 1;
for (int i=0; i<o; i++) {您仅填充了i=0,并在i=1时停止
发布于 2013-11-22 20:09:06
使用下面的代码用随机数填充整个数组。在设置o=1时,只需将数组的第一个元素设置为随机数即可。
private static void algo1(){
int X[] = new int[10];
int randomNumber;
for (int i=0; i<X.length; i++) {
X[i] = (int) (Math.random() * 100) + 1 ;
}
}https://stackoverflow.com/questions/20144474
复制相似问题