一元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);
                }

            }

        }



    }
}