一元N次方程式の導引を求める公式アルゴリズム(さらに修正版、非完璧版)
2224 ワード
/**
* ,
*
* N
*
* @author Administrator
*/
public class SystemMathTools {
/*
* , 。。。
*
* by comsci 2019.2.4 , ,
*
* x*x+3*x+1
* N , ,
*
* DerivedFunction( )
*
* n*x*x+n*x+1 N , ,
*
* 1: ,
2: , X ?
* 3: , X,
* 4:
*
*
*/
public static int counter(String string, String a) {
int m;
int i = string.length() - string.replace(a, "").length();
m = i / a.length();
// System.out.println("x :" + m);
return m;
}
public static String deleteString(String str1, String str2) {
StringBuffer sb = new StringBuffer(str1);
String str3;
int index = sb.indexOf(str2);
if (index == -1) {
}
str3 = sb.delete(index, index + str2.length()).toString();
return str3;
}
public static void main(String[] args) {
String str = "n*x*x*x+m*x*x-s*x+1";//
String str1 = "n*x*x+m*x-2";//
String str2 = "n*x*x*x*x+m*x*x*x-s*x*x+k*x+3";//
StringBuffer str4 = new StringBuffer();
System.out.println(" :" + str2);
String[] strArray = str2.split("\\+|\\-");// ,
// N , FOR ,
for (int i = 0; i < strArray.length; i++) {
if (strArray[i].trim().indexOf("x") != -1) {
System.out.println(strArray[i].trim() + " x :" + counter(strArray[i].trim(), "x"));
str4.append(counter(strArray[i].trim(), "x") + "*" + deleteString(strArray[i].trim(), "*x") + "+");
if (i == strArray.length - 2) {
str4.deleteCharAt(str4.length() - 1);
System.out.println(" :" + str4);
}
}
}
}
}