2014-05-01 6 views
-4

Хорошо, я нашел 2 коротких кода, которые работают, но я хочу понять, как они работают. Я гугле и проверить ссылки, такие как:Math.pow и Math.sqrt в Java

http://www.tutorialspoint.com/java/lang/math_pow.htm http://www.tutorialspoint.com/java/lang/math_sqrt.htm

Но объяснение здесь не ясно. Таким образом, я хочу знать/понимать, что происходит в каждой строке обоих кодов.

A) ниже фрагмент программы вычисляет (дали данные целочисленный массив) и выводит среднее геометрическое всех записей в данных:

double product = 1;// For example, I understand why it is 1, since if it was 0 then the product would be keep getting 0, since any number *0 is always zero. 
    for(int i=0; i<data.length; i++)//okay for loop is getting out all the intergers from the data array. 
    product*=data[i];//This is I am not too sure, I guess each item in array is getting multiplied with each other???? 
    double gmean=Math.pow(product,1.0/data.length); // Yes, I hate this line, because I don't understand it, can someone explain this line please? Please use easy English, I am not as smart as you. 

B) Этот второй фрагмент кода вычисляет (дан целочисленные массив данных) и печатает среднее квадратичное всех записей в данных:

double sum=0; //Okay the sum should be 0 because at the moment nothing has been summed up. 
for(int i=0; i<data.length; i++)// Now getting out all the items in array called data. 
sum+= data[i]*data[i];//Now I am not too sure, all the items in the array called data is getting multiplied with each other and then getting added up? I am not too sure, if would be good if someone could explain this with easy English. 
double qmean = Math.sqrt(sum/data.length);// I hate this line, because I don't understand it. 
System.out.println(qmean);// Displays the final result. 

Хорошо, как вы можете видеть, я понимаю, несколько строк в коде, в то время как есть некоторые строки, я не ООН Понимаете, это было бы так фантастично, если бы кто-то мог объяснить строки, я действительно не понимал, используя простой английский, а не сложным способом.

Заранее спасибо.

+4

Это только простую математику, перевод формулы для [среднее геометрическое] (http://en.wikipedia.org/wiki/Geometric_mean) и [среднее квадратичное] (http://en.wikipedia.org/ wiki/Root_mean_square) (RMS) в код Java. – NullUserException

+0

Вы уже признали, что первый код определяет среднее геометрическое, а второе определяет квадратичное среднее. – Brian

+0

@ NullUserException, спасибо за ваш ответ, но вы видите, я не настолько умный, как вы, в то время как вы считаете это простым, я считаю, что это сложно, мне трудно понять определенные строки в коде, это почему я любезно спросил, может ли кто-нибудь объяснить строки (я не понял) один за другим, так как это единственное, что помогает мне. – Acemi

ответ

0

math.pow (a, b) означает a^b и math.sqrt (a) - квадратный корень a. вы не понимаете java-метод или математическую логику в своем контенте?

+0

метод Java. – Acemi

+1

в вашем содержании просто: double gmean = Math.pow (продукт, 1.0/data.length); = product^(1/data.length) его просто математический код Java для потенции числа – Izu

+1

и double qmean = Math.sqrt (sum/data.length); является квадратным корнем «data.length» из суммы – Izu

1

Предположим, что данные {3,2,7}. data.length равно 3. Это вычислит sqrt ((9 + 4 + 49)/3).

double sum=0; 
// sum is now zero 

for(int i=0; i<data.length; i++) 
// Execute the following statement with i having each value starting from 0, 
// incrementing by 1 each time (i++), as long as i remains less than 3. 
    sum+= data[i]*data[i]; 
    // The sum+= statement is executed three times, with i each of 0, 1, and 2. 
    // The first time adds 9 to sum getting 9 
    // The second time adds 4 to sum getting 13 
    // The third time adds 49 to sum, getting 62 

double qmean = Math.sqrt(sum/data.length); 
// make qmean equal to sqrt(62/3). 

System.out.println(qmean);// Displays the final result. 
Смежные вопросы