由于要编写一些数值分析算法,且要实现图形界面。该算法中留有数学函数接口,函数要作为一个输入参数。请问:怎么把这个一元函数作为参数传入?而且在算法中要调用该函数计算在给定点的数值!

解决方案 »

  1.   

    用c好实现.
    在java中,定义一个接口,该接口用来表示你的函数,你的算法所在的类来实现这个接口,这样行不行?
      

  2.   

    问题是函数是输入参数。比如:对f(x)=x*x;我写一个类来实现一个接口。可换一个函数,岂不是又要写一个类,函数那么多,总不能每一次都写一个类吧!
      

  3.   

    这个可没那么简单,这涉及数学函数语法解析、分析、计算等一整套流程。让编程语言去实现计算 1 + 2 * (3 + 4) 这种字符串都是很麻烦的,不要说数学函数了。一般只有一些专用的数学软件才提供这些功能,比如以符号函数为强项的 Mapple,以及 Matlab、Mathematica 等,以及免费的 Scilab
      

  4.   

    不用重写类,
    只改一下接口的实现,比如,你原来return x*x,新的函数,要求返回x*x+1,改return x*x+1就可以了.类的其它部分不用动.
      

  5.   

    汗呢,头痛中 !记得不知是VB还是JavaScript中有个函数叫eval(),它可以执行传入的语句!java中没有嘛?
      

  6.   

    在java中可以用多态模拟C语言中函数的参数是函数的情况:Interface MyInterface{
       float func(float x); 
    }
    class A implements MyInterface{
       public float func(float x){
          //这里写函数的实现
          
       }
    }
    class B implements MyInterface{
       pulibc float func(float x){
          //写函数的第二种实现。
       }
    }
    //如果有第三种函数,可以再写一个实现类,而MyClass基本不用改。
    public class MyClass{
    //...
      MyAlgorithm(MyInterface mi){
        //...
        y=mi.func(x);
      }//MyAlgorithm
    //...
      public static void main(String[] args){
        new MyClass().MyAlgorithm(new A);
        //new MyClass().MyAlgorithm(new B);
     }
    }
      

  7.   

    他要实现数值分析的函数,那些函数可不是什么普通的函数,可能带有 ∑、∫、阶乘之类的,用 eval 函数根本没办法实现。