簡體   English   中英

僅將數組從絕對值轉換為數組

[英]Convert array into array from absolute values only

我無法將負數組元素轉換為絕對數組。 到目前為止,IVE制作了既包含負值又包含正值的數組,但是我必須將它們轉換為絕對值,以便計算數組的平方根。 有什么建議么?

 public static void main(String[] args) {
    int min = -100;
    int max = 100;

    int[] array = new int[201];
    for (int i = 0; i < array.length; i++) {

        array[i] = min + (int) (Math.random() * ((max - min) + 1));

        //System.out.println(array[i]);
    }

    int[] array2 = new int[array.length];
    for (int j = 2; j < array.length; j += 3) {
       array2[j] = array[j];
       //System.out.println(array[j]);



        double[] result = new double[array2.length];
        for (int i = 0; i < array2.length / 3; i++) {

            array2[i] = Math.abs(i);
            result[j] = Math.sqrt(array[j]); 
            System.out.println(array[i]);
        }

您的倒數第三行是錯誤的,您需要:

result[j] = Math.sqrt(array2[j]);

您在i (索引)上而不在數組元素上調用Math.abs() 另外,將abs的結果存儲到array2[i] ,然后在另一個數組和元素( array[j] )上調用Math.sqrt() )。 還要檢查您的for循環索引是否以所需的方式迭代字段(對我而言,for循環語句似乎有些奇怪)。

您必須清楚地描述您的意圖,尚不清楚您是否想要數組的每個第三元素,而不是每個元素。

但是,有多種方法可以達到結果。

  1. 您可以創建一個List來存儲每個第三個元素的平方根

     List<Double> result1 = new ArrayList<>(); for (int j = 2; j < array.length; j += 3) { result1.add(Math.sqrt(Math.abs(array[j]))); } 
  2. 如果您想使用數組,請像這樣

     double[] result2 = new double[array.length / 3]; for (int j = 2; j < array.length; j += 3) { result2[j / 3] = Math.sqrt(Math.abs(array[j])); } 

在這兩個示例中,我們調用Math.abs來獲取絕對值,並調用Math.sqrt來獲取平方根。

這是完整的代碼

public static void main(String args[])
{
    int min = -100;
    int max = 100;

    int[] array = new int[201];
    for (int i = 0; i < array.length; i++) {
        array[i] = min + (int) (Math.random() * ((max - min) + 1));
    }

    List<Double> result1 = new ArrayList<>();
    for (int j = 2; j < array.length; j += 3) {
        result1.add(Math.sqrt(Math.abs(array[j])));
    }

    double[] result2 = new double[array.length / 3];
    for (int j = 2; j < array.length; j += 3) {
        result2[j / 3] = Math.sqrt(Math.abs(array[j]));
    }

    System.out.println(result1);
    System.out.println(Arrays.toString(result2));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM