Java中的中值和平方根
我必须实现一个名为“的静态公共方法” berechneMittelwertWurzel “。该方法获取一个双精度数组和两个整数值作为输入参数,并返回一个双精度值。 签名:calculateMeanRoot(double[]数组,int startindex,int endindex):double 该方法根据指定范围(startIndex到endIndex)内数组中的数字计算平均值。根据平均值计算并返回平方根 两个指数的负值都可以忽略Java中的中值和平方根,java,median,negative-number,Java,Median,Negative Number,我必须实现一个名为“的静态公共方法” berechneMittelwertWurzel “。该方法获取一个双精度数组和两个整数值作为输入参数,并返回一个双精度值。 签名:calculateMeanRoot(double[]数组,int startindex,int endindex):double 该方法根据指定范围(startIndex到endIndex)内数组中的数字计算平均值。根据平均值计算并返回平方根 两个指数的负值都可以忽略 如果startIndex>endIndex是Interva
- 如果startIndex>endIndex是IntervaleException,则应抛出它,它继承自RuntimeException。这也应该可以通过消息调用,但是默认构造函数应该保留
- 如果endIndex>array.length-1或startIndex<0,则应抛出IndexOutOfBoundsException
- 如果双数组为空,则返回0
- 结果应使用Math.round()四舍五入
- 如果计算的平均值小于零(),则您发布的函数不符合练习中的规范。存在各种问题:
- 它的论点是错误的
- 它的返回类型是错误的
- 它不会按指定检查参数或抛出错误
- 您的函数似乎创建了一个字符串(分配给未声明的变量!),这对于解决问题是不必要的
publicstaticdouble-calculateMeanRoot(double[]数组,int-startindex,int-endindex){ //如果startIndex>endIndex是IntervalException,则应抛出该异常 //如果endIndex>array.length-1或startIndex<0,则应抛出IndexOutOfBoundsException //计算'startIndex'和'endIndex'(*)之间的数组元素之和 //将总和除以'endIndex'和'startIndex'之间的差值来计算平均值`
//如果计算的平均值小于零(),则您发布的函数不符合练习中的规范。存在各种问题:- 它的论点是错误的
- 它的返回类型是错误的
- 它不会按指定检查参数或抛出错误
- 您的函数似乎创建了一个字符串(分配给未声明的变量!),这对于解决问题是不必要的
publicstaticdouble-calculateMeanRoot(double[]数组,int-startindex,int-endindex){ //如果startIndex>endIndex是IntervalException,则应抛出该异常 //如果endIndex>array.length-1或startIndex<0,则应抛出IndexOutOfBoundsException //计算'startIndex'和'endIndex'(*)之间的数组元素之和 //将总和除以'endIndex'和'startIndex'之间的差值来计算平均值`
//如果计算的平均值小于零(好的,如果可能的话,我会从按顺序实现项目符号开始。这意味着首先检查索引并在需要时抛出异常,然后在数组为null或空时返回0,最后进行计算。此外,您的任务已经提供了方法签名:
。为什么不使用它?如果双数组为null,则返回0表示什么?有更好的方法吗?简言之:是的。为什么?因为您的计算是错误的。我不确定这些内部循环的用途,但您基本上应该执行以下操作:1)计算指定范围内所有元素的总和(即在索引<代码>开始,开始+1,…,结束<代码>),2a)如果总和为负数,则抛出异常;2b)如果总和>=0,则使用该范围的长度计算平均值(长度可从索引计算)和3)根据这个平均值计算平方根。@Thomas谢谢你的帮助suggetion@Thomas事实上,“Mittelwert”和“average”是相当非正式的术语,可以指不同的值,有时两者都用来指中值和平均值。但令人困惑的是,它们也可以用来指中位数,而不是中位数。在重要的地方,最好完全避免使用它们。好吧,我先从实施要点开始,如果p可能。这意味着首先检查索引并在需要时抛出异常,然后在数组为null或为空时返回0,最后进行计算。此外,您的任务已经提供了一个方法签名:double calculateMeanRoot(double[]数组,int-startindex,int-endindex)
。为什么不使用它?它有什么作用“如果双数组为null,则应返回0”平均值?“有更好的方法吗?”-简言之:是的。为什么?因为您的计算是错误的。我不确定这些内部循环的用途,但您基本上只需执行以下操作:1)计算指定范围内所有元素的总和。”(即,在索引double calculateMeanRoot(double[]数组,int startindex,int endindex)
),2a)如果总和为负数,则抛出异常;2b)如果总和>=0,则使用该范围的长度(长度可从索引计算)计算平均值;3)从该平均值计算平方根。@Thomas感谢您的帮助suggetion@Thomas事实上,两者都有“Mittelwert”和“average”是相当非正式的术语start,start+1,…,end
public static double [] berechneMittelwertWurzel(int startindex, int endindex) { double arr[] = { 5.2, 66.23, -4.2, 0.0, 53.0 }; double sum = 0; for(int i=0; i<arr.length; i++){ sum = sum + arr[i]; double average = sum / arr.length; for(int i =0; i < arr.length;i++) { for(int j = 0;j < arr.length;j++) { if(Math.sqrt(arr[i]) == arr[j]) { s += arr[j] + "," + arr[i] + " "; if(index < 0 || index >= array.length) throw new IndexOutOfBoundsException();