Java 在数组中生成随机数
我有一个伪代码,我把它变成了java代码。这是前缀平均值的计算:Java 在数组中生成随机数,java,arrays,random,average,prefix,Java,Arrays,Random,Average,Prefix,我有一个伪代码,我把它变成了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)
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);
}
}
公共类前缀1{
公共静态void main(字符串[]args){
algo1();
}
私有静态void algo1(){
整数X[]=新整数[10];
整数随机数;
INTO=1;
for(int i=0;i查看for循环。它实际上表示i<1
。使用数组的长度:
for (int i=0; i<X.length; i++) {
randomNumber = (int) (Math.random() * 100) + 1 ;
X[i] = randomNumber;
}
for(int i=0;i我认为这是您的问题:
int o = 1;
for (int i=0; i<o; i++) {
into=1;
对于(int i=0;i使用以下代码用随机数填充整个数组。设置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 ;
}
}
private static void algo1(){
整数X[]=新整数[10];
整数随机数;
for(int i=0;i在您的for
循环o=1
中,因此只有在时间上循环才会工作
int o = 1;
for (int i=0; i<o; i++) {
randomNumber = (int) (Math.random() * 100) + 1 ;
X[i] = randomNumber;
}
总是定义“不工作”。你知道first for循环只运行一次吗?对于starter,因为你的o=1,你没有填充整个数组,但你只放了一个元素。它不会生成随机数,只是随机字符。我尝试了这个方法,但当我打印出A或X时,我得到了输出:[I@45bab50a@kaisternadh你试过迭代数组吗?你不能直接打印出来。我试过了,现在它正在打印数组中的数字,但我刚刚意识到我要打印的是数组中数字的平均值。@kaisternadh然后迭代数组,将所有数字相加,最后除以数组的长度,有些类似这样的事情:double avg=0;for(inti:X){avg+=i};avg=avg/X.length
int o = X.length;
for (int i=0; i<o; i++) {
randomNumber = (int) (Math.random() * 100) + 1 ;
X[i] = randomNumber;
}