JAVA数学问题~高分~~

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:49:10
各位同仁们,JAVA的高手们,急需解决的问题~帮忙啊~~
第一题
已知
double r=1.5d;
double rc;
double a=2.286;
double b=1.016;
int m,n;

rc=(2/Math.sqrt((m/a)*(m/a)+(n/b)*(n/b)));求满足rc>r时,所有的m n的可能的组合
m n不能同时为0

第二题
double pi=3.14f;
double w,u,e;
double a;
double b,r,rc;
int m,n;
r=2*pi/w*Math.sqrt(u*e);
rc=(float) (2/Math.sqrt((m/a)*(m/a)+(n/b)*(n/b)));
当给定 a=2.286 b=1.016时所有满足rc>r的w u e 和 m n的组合 m n不能同时为零
第二题
当给定 a=2.286 b=1.016时所有满足rc>r的w u e 和 m n的所有可能的组合 m n不能同时为零
double pi=3.14d;

各位高手,如果第二题麻烦的话,只要第一题没问题就给分啊~~请快一点啊

ping3021 谢谢你的回答,你的答案中m,n不能同时为零很容易就实现了,这就不说了,但是你限定了m,n的最大值,你怎么能确定当m,n大于100的时候没有满足条件的答案呢~如果此时变换a,b的值的时候,你的回答就不能满足要求了。故不能采纳你的答案,再次感谢~

Draconious 谢谢你的回答~~抱歉的是我的题目当中只要mn同时为正整数就可以了,让你做多做了许多工作,第二题也是我没有说清楚,那几个变量不可能全部都是变化的,一般会是先限定几个,然后计算未知的组合,不过有你第一题的答案,剩下的我自己能搞定了~再次感谢~

这是第一题的答案:

import java.util.Vector;

public class MathsProblem1{
public static void main(String[] args){
double r=1.5d;
double rc;
double a=2.286;
double b=1.016;
int m=0,n=0;
Vector mValues=new Vector();
Vector nValues=new Vector();

Outer:while(true){
Inner:while(true){
if(m==0&&n==0){n++;continue Inner;}
rc=(2/Math.sqrt((m/a)*(m/a)+(n/b)*(n/b)));
if(rc>r){
mValues.add(m);
nValues.add(n);
n++;
}
else if(rc<=r&&n==0) {m=0;n=0;break Outer;}
else{
n=0;
break Inner;
}
}
m++;
}

Outer:while(true){
Inner:while(true){
if(m==0&&n==0){n--;continue Inner;}
rc=(2/Math.sqrt((m/a)*(m/a)+(n/b)*(n/b)));
if(rc>r){
mValues.add(m);
nValues.add(n);
n--;
}
else if(rc<=r&&n==0) {m=0;n=0;break Outer;}
else{