⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 original_function_point_set.java

📁 Genetic Programming。GP算法在方程逼近求解上的应用。
💻 JAVA
字号:
import java.io.*;public class Original_Function_Point_Set {  static final int MAX_NR_OF_FITNESS_CASES = 100;  private String rawText;  public RealPoint[] data;  public Original_Function_Point_Set( String rawText) {            super();            this.rawText = rawText;            this.data = read(rawText);	}  public RealPoint[] get() {              return data;	}  public static RealPoint[] read(String s) {          StringBufferInputStream stream = new StringBufferInputStream(s);          StreamTokenizer tokenizer = new StreamTokenizer(stream);          RealPoint[] temp = new RealPoint[MAX_NR_OF_FITNESS_CASES];          int count = 0;          try {                  int token;                  do {                          double x;                          double y;                          token = tokenizer.nextToken();                          if (token == StreamTokenizer.TT_NUMBER) {                                  x = tokenizer.nval;                                  token =	tokenizer.nextToken();                                  if (token	== StreamTokenizer.TT_NUMBER) {                                          y = tokenizer.nval;                                          temp[count] = new RealPoint(x, y);                                          count++;                                  }                          }                  } while (count < MAX_NR_OF_FITNESS_CASES && token != StreamTokenizer.TT_EOF);          } catch (Exception e) {                  ;          }          RealPoint[] result = new RealPoint[count];          System.arraycopy(temp, 0, result, 0, count);          return result;	}public static String makeDefaultFitnessCases(int number) {        int NrOfFitnessCases = 20;        String s=null;        switch(number)         {         	case 0: {s="// 3*x^4 - 3*x + 1\n";break;}         	case 1: {s="//sin(x)\n";break;}         	case 2: {s="//cos(x)\n";break;}         }                for (int i = 0; i < NrOfFitnessCases; i++) {                double x = (double)i / (NrOfFitnessCases - 1);                if (x == 0.0) {                        x = 1.0e-7;                }         double y = 0;                  switch(number)         {         case 0:         {y=1.0 + (-3.0)*x + (3.0)*x*x*x*x;break;}         case 1:         {y=Math.sin(x);break;}         case 2:         {y=Math.cos(x);break;}                          }               //	The stream tokenizer does not handle numbers with an exponent.                //	Therefore, clamp small numbers like 1.2e-6 to 0:                if (Math.abs(x) < 1.0e-5) {                        x = 0;                };                if (Math.abs(y) < 1.0e-5) {                        y = 0;                };                s = s + x + "  " + y + "\n";        }        return s;        }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -