gpt4 book ai didi

java - 如何在Java中将长度为m的整数数组转换为长度为n的数组

转载 作者:行者123 更新时间:2023-12-01 17:01:16 24 4
gpt4 key购买 nike

嘿,想要将给定长度(大于 852)的整数数组转换为长度为 852 的其他整数数组。

那是因为我想将 m 值显示为 852 像素。

逻辑方法就是除以两者之间的比率:

假设我要压缩的数组有 2556 个值。

两者之间的比率是 2556/852 = 3,因此我可以获取 3 个值并求平均值。

问题是比率并不总是整数,例如 2756/852 是 3.2347...

有人可以帮助我吗?

谢谢!

最佳答案

我实际上解决了,我设法创建一个 int Java 函数,它完全符合我的要求。您只需要导入 import java.util.Arrays;

函数为compressArr(arrayTocompress, newArrayLength)

返回 float 组。

public static float[] compressArr(float[] arr1, int l){
float[] arr2 = new float[l];
for(int i = 0; i<l;i++){
arr2[i] = average(Arrays.copyOfRange(arr1,P1(i,arr1.length,l),P2(i,arr1.length,l)+1));
}
return arr2;
}

public static int P1(int x,int n, int d){
float r = ((float)n)/d;
int b = 0;
int p = 0;
for(int i = 0; i<x ; i++){
p = (int)(x*r-b);
b*=p;
}
return(p);
}

public static int P2(int x,int n, int d){
x+=1;
float r = ((float)n)/d;
int b = 0;
int p = 0;
for(int i = 0; i<x ; i++){
p = (int)(x*r-b);
b*=p;
}
return(p-1);
}

static float average(float a[]) {
int n = a.length;
float sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];
return sum / n;
}

关于java - 如何在Java中将长度为m的整数数组转换为长度为n的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61504024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com