要求做个java程序用户输入数字逗号隔开, 计算下面的公式 多谢了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了要求做个java程序用户输入数字逗号隔开, 计算下面的公式 多谢了相关的知识,希望对你有一定的参考价值。
xy上面带个线的是平均值 sxsy 是 标准差 s
参考技术A public class InputHelperpublic static int[] getInt(String path)
String[] pathsStrings = path.split(",");
int size = pathsStrings.length;
int[] data = new int[size];
for (int i = 0; i < size - 1; i++)
data[i] = Integer.parseInt(pathsStrings[i]);
return data;
//inputHelper类的作用是将输入的字符串解析为int数组
public class Calculate
private int[] data;//数据数组
private int size = 0;//数组长度
private int xCount = 0;//x值的和
private int yCount = 0;//y值的和
private int x_ = 0;//x的平均值
private int y_ = 0;//y的平均值
private int sX = 0;//x方差的平方
private int sY = 0;//y方差的平方
private double r;
private int count;
private int n;
private String paString;
public void calculate()
paString = new Scanner(System.in).nextLine();
data = InputHelper.getInt(paString);
size = data.length;
n=size/2;
System.out.println(data[0]);
for (int j = 0; j < size - 1; j += 2)
xCount += data[j];
yCount += data[j + 1];
x_ = xCount / n;
y_ = yCount / n;
for (int m = 0; m < size - 1; m += 2)
sX += (data[m] - x_) ^ 2;
sY += (data[m + 1] - y_) ^ 2;
for (int n = 0; n < size - 1; n += 2)
count += data[n] * data[n + 1];
r = (count - n * x_ * y_)
/ ((n - 1) * (Math.sqrt(sX / n)) * (Math.sqrt(sY / n)));
System.out.println("r的值是:" + r);
//Calculate类计算方程式的值并输出
public class Test
public static void main(String[] args)
System.out.println("请输入数据,以逗号隔开:");
Calculate calculate = new Calculate();
calculate.calculate();
参考技术B public static void main(String[] args)
Scanner sc=new Scanner(System.in);
System.out.println("请输入x,以英文逗号','分隔,回车结束");
String x=sc.nextLine();
System.out.println("请输入y,以英文逗号','分隔,回车结束");
String y=sc.nextLine();
if(x.length() != y.length())
System.out.println("两组数据个数不相等,程序结束");
String[] xs=x.split(",");
String[] ys=y.split(",");
int n=xs.length;
double[] xd=new double[n];
double[] yd=new double[n];
double sum=0;
for(int i=0; i < n; i++) // 字符串转数字
xd[i]=Double.parseDouble(xs[i]);
yd[i]=Double.parseDouble(ys[i]);
sum+=xd[i] * yd[i];
double x_=getAverage(xd);// x的平均值
double y_=getAverage(yd);// y的平均值
double sx=getSD(xd);// x标准差
double sy=getSD(yd);// y标准差
double r=(sum - n * x_ * y_) / ((n - 1) * sx * sy);
System.out.println("结果r=" + r);
static double getAverage(double[] s) //平均值
double ave=0;
for(int i=0; i < s.length; i++)
ave+=s[i];
ave=ave / s.length;
return ave;
static double getSD(double[] s) //标准差
double sd=0;
double ave=getAverage(s);
double tem1=0;
for(int i=0; i < s.length; i++)
tem1+=(s[i] - ave) * (s[i] - ave);
tem1=tem1 / s.length;
sd=Math.sqrt(tem1);
return sd;
本回答被提问者采纳
以上是关于要求做个java程序用户输入数字逗号隔开, 计算下面的公式 多谢了的主要内容,如果未能解决你的问题,请参考以下文章
编写一个程序 输入一系列单词 用逗号隔开,然后提取这些单词,并分行输出,删除空格