一元N次方程的字符串形式导数输出

代码如下  。。。。。。。。。网上给出的求导数的方法是数值方法,这个方法是字符串方法

public class SystemMathTools {

/*

*  还不是很完善,需要进一步修改。。。
     *
     *  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+n*x-1";//一元二次方程组
        System.out.println("原函数为:"+str);
        String[] strArray = str.split("\\+|\\-");//分割为子串,以便分别求导

System.out.println(strArray[0].trim() + " x指数为:" + counter(strArray[0].trim(), "x"));
        System.out.println(strArray[1].trim() + " x指数为:" + counter(strArray[1].trim(), "x"));
        System.out.println(strArray[2].trim() + " x指数为:" + counter(strArray[2].trim(), "x"));

String str1 = counter(strArray[0].trim(), "x") + deleteString(strArray[0].trim(),"x");
        String str2 = counter(strArray[1].trim(), "x") + deleteString(strArray[1].trim(),"x");
   
        String str3 = deleteString(str1,"*");
        System.out.println("子串导数为"+str3);
        
        String str4 = deleteString(str2,"*");
        System.out.println("子串导数为:"+str4);

System.out.println("导数为:"+str3+"+"+str4);
        
    }
}

原文地址:https://www.cnblogs.com/comsci/p/10348137.html

时间: 2024-10-08 09:24:42

一元N次方程的字符串形式导数输出的相关文章

进一步完善之后的一元N次方程求导算法

祝大家节日快乐.......写代码就是过节.... package com.system.Tools; /** * 这个类,实现对函数的求导算法 * 最大目标  实现对任意多元函数的偏导数和全导数的求导算法 * 最小目标  实现对一元N次函数的求导算法 *  * @author Administrator */public class SystemMathTools { /* *  还不是很完善,需要进一步修改...     *      *  by comsci 2019.2.4 经过进一步的

字符串的输出处理

字符串的输出处理 我对字符串的输出是比较头疼的,就是在技巧方面把握的不好,记得刚开始接触字符串的时候,就是要正着输入倒着输......都不会,就是找不到技巧,下面我会从简单到复杂分析一下这种题型,可能不全,请见谅. 一. 先说一下题意,就是随便输入一句话如"hello my friend",输出的时候是"dneirf ym olleh",大家看出什么了没有,就是正着输入,倒着输出,先看一下主要的代码内容吧 <strong>#include<stdi

输入一个字符串,输出该字符串中对称的子字符串的最大长度。

public class LongestSymmtricalLength2 { /* * Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度. * 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4. */ public static void main(String[] args) { String[] strs = { "a","google", "elgoog", "agol

编程题:为了展示文件包含功能,输入一个字符串,输出其长度。

1.c源代码如下: #include<stdio.h> #include"2.c" void main() { char string[20]; scanf("%s",string);         /*整个程序的功能:输入一个字符串,输出其长度*/ printf("There are %d characters.\n",string_len(string)); } 2.c源代码如下: int string_len(char str

字符串分隔 -&gt;连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; ?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc 123456789 输出例子: abc00000 12345678 90000000 import java.util.*; public class Main{     public static void main(String[] ar

用指针对字符串输入/输出

#include<iostream> using namespace std; int main(void) { char *s=new char[80]; cout<<"输入一个字符串: "; cin>>s; getchar(); cout<<"输入的字符串是:"; cout<<s; getchar(); delete []s; s=NULL; } s是一个字符型指针变量,通过new运算符申请一个动态数组

一个关于字符串截取输出的例子

要求:给定字符串"1234"或者"12345",输出以下序列. output-> "1234","123","234","12","23","34","1","2","3","4"  "12345","1234","

C语言 多次运算字符串,输出结果(不容易啊,调了1个多小时,才调整出来。。。。)!希望大神们有更好的办法,能够指点一二

//输入一个多次运算字符串,输出结果,只支持四则运算,只支持整数. //解析字符串运算(无括号状态下) int calculatorFinal(char *str) { //jieGuo[100][10]用于存放解析出来的数组 char *p[100], jieGuo[100][10]; int result, secondNumber, i = 0, j = 0; char tempNumber[20], op; for (i = 0; i < 100; i++) { p[i] = jieGu

[Javascript] 如何自定义字符串格式化输出

在其他语言中十分常见的字符串格式化输出,居然在 Javascript 中不见踪影,于是决定自己实现该方法,以下就是个人编写的最简洁实现: String.prototype.format = function(){ var args = arguments; return this.replace(/\{(\d+)\}/gm, function(ms, p1){return typeof(args[p1]) == 'undefined' ? ms : args[p1]}); } 应用示例: >>