Мне нужен метод в Java, который возвращает решение для уравнения, это уравнение без кода выглядит следующим образом:
- получить число (Z)
- и угол (C) в радиан
затем найдите значение X, которое является решением для этого уравнения:
a = Integer( z*cos(c) ) // temp must be integer
//now we have the value of a
// we put it in b
b = a
//now we look for the value of x that solves this equation
b =? Integer( X/cos(C) ) // X also must be integer
X = ?? // we must get X the solves the equation above
Пример: рассмотрим
Z = 15
C = 140 // full angles will be casted ..it will be rooted to ~-0.0629*PI
temp = Integer( 15*cos(140) // -2.96 )
temp <-- -2 //after parsing to integer
-2 = Integer ( X )/cos(140)
what is X ?
Я пытался реализовать этот метод в Java, но в большинстве случаев он застревал, находя результат, этот код не находит прямого решения, как я хочу, чтобы он проверял числа, пока не получит его, но во многих случаях он не может найтирезультат и продолжает цикл до бесконечности.Кроме того, он так медленно находит результат, и я вызываю эту функцию более 500 000 раз в программе
int Rounding(int z, int c){
int offset = 20 ;
int x;
int test = (int) ( z*Math.cos(c) - offset );
int solution;
while(true){
solution = (int) ( test/Math.cos(c) );
if(solution == z){
x = solution;
break;
}else{
test++;
}
/*
if(solution > z){
offset ++;
solution = (int) ( z*Math.cos(c) - offset );
}
*/
}
return x;
}
/*Note : the function will return x only when it solves this : */
int returned_Z = (int) ( x/Math.cos(c) )
// returned_Z must be equal to z
После этого эта переменная x будет сохранена в файле ... затем, когда файл откроет этупеременная x будет возвращена в z с помощью этой функции:
int returning(int x, int c){
int z = (int) ( x/Math.cos(c) );
return z;
}