2013-12-18 3 views
-1

Угадай, что я пытаюсь решить битовое сложное уравнение с помощью java на затмении.Решение уравнения в Java

У меня такие же ответы на моих печатных выходах. может кто-то пожалуйста, помогите

Scanner input = new Scanner(System.in); 
System.out.print("enter the flr_i value"); 
double flr_i = input.nextDouble(); 

System.out.print("enter the effective flr_j value "); 
double flr_j_eff = input.nextDouble(); 

System.out.print("enter the number of layer-j frames ref by a layer i-frame"); 
double M_j_i = input.nextDouble(); 

double j = 0; 
double i = 1; 
for (j = 0; j<i; j++)  
    j *=i; 

double flr_i_eff = 1-(1-flr_i)*j*Math.pow((1-flr_j_eff), M_j_i); 
System.out.println(" the effective frame loss rate is: "+flr_i_eff); 

double sigma = 0; 
double l = 0; 

double ni=1000; 
double avgFLR_F = 0; 
while (l <20){ 
    l++; 
    sigma += l; 
} 

avgFLR_F = sigma*(ni/(sigma*ni))*flr_i_eff; 
System.out.print("the mean frame loss rate is :"+ avgFLR_F); 
+3

Какова цель 'двойной J = 0; удваивать = 1; для (j = 0; j fdsa

+0

Какое уравнение вы пытаетесь решить? – vandale

+0

У вас есть ссылка на документ, показывающий уравнение, которое вы пытаетесь реализовать? –

ответ

3

Есть некоторые логические проблемы здесь

double j = 0; 
double i = 1; 
for (j = 0; j<i; j++)  
    j *=i; 
// j is always 0 after the loop 
// j = 0 => double flr_i_eff = 1-(1-flr_i)*j*Math.pow((1-flr_j_eff), M_j_i) = 1 - 0 = 1 
1

Этот блок кода:

double j = 0; 
double i = 1; 
for (j = 0; j<i; j++)  
    j *=i; 

всегда даст вам i=1 и j=0

Я предполагая, что это не то, что вы хотите (иначе зачем нужен цикл for)

Кроме того, этот блок кода:

double sigma = 0; 
double l = 0; 

//double ni=1000; 
double avgFLR_F = 0; 
while (l <20){ 
    l++; 
    sigma += l; 
} 

всегда даст вам l=20 и sigma=190.

+0

@ JuliánUrbano возглашает! Спасибо, что поймали это :) – dataNinja124

0

Вы не можете сделать это, потому что инициализация 0 с умножением, то это будет всегда 0.

double j = 0; 
double i = 1; 
for (j = 0; j<i; j++)  
    j *=i;