Java构建多项式的代码 采用生成多项式

第一次学用类写java程序搞不懂怎么写啊,求大神帮忙给点思路。帮忙写下这个多项式的程序包括。java和test

建议你去看 java 基础教程,你要先学会基础,不用太过心急。

成都创新互联从2013年创立,先为拉孜等服务建站,拉孜等地企业,进行企业商务咨询服务。为拉孜企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

给你个加减乘除的例子,让你学会如何组织一个类:

(简单例子,你再举一反三,自己理会复杂例子)

public class SimpleCalculator {

public int addition(int number1, int number2) {

return number1 + number2;

}

public int subtraction(int number1, int number2) {

return number1 - number2;

}

public int multiplication(int number1, int number2) {

return number1 * number2;

}

public int division(int number1, int number2) {

return number1 / number2;

}

}

多项式求导问题(线性表) 怎么用java语言编写啊 急用!!

#包括“stdio.h中”

typedef结构节点

{C,E / /节点的数据域,C为系数的多项式e多项式指数

结构节点下/ /节点的指针字段

} PN / /自定义的节点结构类型PN

PN * createPoly()/ /这个函数用于创建一个链表,返回值是一个节点的指针

{N,E,C;

PN *头,* P / /定义头结点指针头节点的指针p

printf(“请输入项目编号项目:“);

scanf的(”%d“,&N); / / n的值,无论是项目的数量

头= P = PN / / * malloc的(大小(PN));/ /头,p指向头节点(头节点不必存储的数据)

P- = NULL; / /这里,创建一个空列表

( - )/ /循环n次

{

P- =新PN ;/ / * malloc的(如sizeof(PN));/ /动态分配新的节点,然后在链末端(尾插)

P = P-下;

/ / printf的(“CE”); / /到新的节点,添加数据

scanf的(“ %d月%d“,&P- C:P- E);

}

P- = NULL; / /指针域页脚设置为空

返回头; / /返回头节点地址

}

无效printPoly(PN *头)/ /这个函数是用来

{PN * P =头下输入链接的列表信息; / /用来遍历链表节点指针P,P点的表头

(P)/ /当p = NULL的表底,在周期结束

{printf(“请(%D,%D)”,P- C,P- E)/ /显示当前节点的数据

P = P-; / / P点移动到下一个节点

}

printf的(“\ n”); / /输出一个回车

}

的无效freePoly(PN *头)/ /函数是用来摧毁的链表

{PN * P / /释放节点(动态内存块)

同时(头)/ /头= NULL(已经到了结束的表),在循环结束

{P =头; / /让p指向头节点称为

头=头下; / /指向头移动到下一个节点/删除(P)/ / P所指节点释放(动态内存块)

}

}的

PN * polyAdd的(PN公顷,PN * HB)/ /这个函数两个多项式的总和

{C,E; / / C是多项式的系数,e是多项式指数

PN * PA = HA-下一个* PB = HB-下,/ /?PA,PB用于遍历两个链表传递的参数(参数两个链表的头结点指针),让我们称呼他们为链表AB

* HC,* PC / / HC新列表头的总和的两个列表中的相应节点的节点,PC,用于遍历新的列表,链接列表的称之为C

HC = PC =新PN;

(PA |以pb计)/ /当两个链表的遍历完成循环停止

{

(PA (PB == NULL | | PA- E E))/ /取指数项链成一个链表或链接列表b遍历完成后,执行内容

,如果{C = PA- C;

E = PA- E;

PA = PA-下;

}

其他(PB (PA == NULL | | PA- E PB- E))/ /走索引就是少了一个项链成一个链表,链表的遍历完成实施的内容,如果

{C = PB- C;

E = PB- E;

PB = PB-;

}

/ /指数等于执行

{C = PA- C + PB- C;

E = PA- E;

PA = PA-下;

PB = PB-下;

}

(C)/ /添加一个链接到一个新的列表清单 BR / {

PC-下一个新的PN;

PC = PC-

PC - C = C;

PC- E = E; BR /}

}

PC-下一个= NULL;

回报HC / /返回一个新的列表头节点的指针

}的

PN * mulxmul的(PN公顷PN HB)/ /这个函数是每个项目表关闭一次onexmul功能,并最终实现多项式乘法的a和b

{PN * T * HC,* PA = HA-“下;

PN * onexmul(PN * PA,PN * HB)/ /函数的声明,因为下一个步骤是使用

PN * polyAdd的( PN *公顷,PN * HB)/ /函数声明,因为下一个步骤是使用

T =新的PN,T - = NULL; / /存储最终的结果链表,t为头,该表姑且称之为T台上

(PA)/ /遍历一个链表

{HC = onexmul(PA,HB); / / PA所指的项目表中的b表所有的项目都乘以(即多项式多项式B乘)

T = polyAdd(T,HC); / /将分别相乘的结果中添加

freePoly(HC); / /将调用onexmul功能生产破坏中间的链表,链表的项目已经在t链表

PA = PA-下;

}

回报吨; / / T-表头结点指针返回

}

PN * onexmul的(* PA,PN PN * HB)/ /这个函数是用来PA所指的项目表中的b表项相乘(即多项式一个多项式B相乘)

{PN * HC,PC,PB = HB-; / / HC是新的列表头节点,PC遍历新的列表 BR / HC = PC = PN / / HC,PC指向头节点

一段时间(以pb计)/ /遍历b链接列表

{PC-下一步= PN / /创建一个新的链表节点

PC = PC - 下;

PC- C = PA- C * PB- C; / /到新的节点分配的系数,系数等于乘以

PC- E = PA - E + PB- E / /指数指数总和等于

PB = PB-下;

}

PC - 下一步= NULL;

返回HC / /新的列表头节点的指针返回

}

诠释的main()

{ PN *下*,HB,HC;

freopen(“; poly.in”,“R”状态,stdin); / /只读模式poly.in

freopen(“poly.txt “,”W“中,stdout); / /只写模式打开poly.txt

公顷= createPoly()/ /创建一个新的链接列表,哈头节点的指针(多项式)

printPoly医管局总(公顷); / /输出节点的指针链表信息

HB = createPoly()/ /创建一个新的链接列表,HB头节点指针(多项式)

printPoly(HB); / /输出HB头节点的指针链表信息

HC = polyAdd(HA,HB)/ /多项式一个多项式B和结果,HC是头节点的指针链表

printPoly(HC) /添加/输出链表信息

freePoly(HC); / /销毁链表的

HC = mulxmul(HA,HB)/ /多项式一个多项式B相乘的结果,HC头节点的指针

printPoly(HC)/ /输出链表的信息后乘以链表

freePoly(公顷); / /销毁链表

freePoly(HB); / /销毁链表

freePoly(HC); / /销毁的链表

返回0;

}

OK,花了大量的时间来帮你写下来笔记,完整的,完全一样的原理和数学模型,它应该是能读“,”流程图“,相信,理解程序,它是难以划清,尝试下。

谁知道用java怎么写出两个多项式相除的程序啊。。求解啊。。速度啊。。

网上有用单链表来实现多项式的加减乘,你可以参考一下,代码如下

public class Polynomial {

private Monomial first; // 首项

//添加单项式

public void append(Monomial monomial) {

if (monomial == null) {

// do nothing

} else if (first == null) {

first = monomial;

} else {

Monomial current = first;

while (current != null) {

// Examda提示:如果指数相同,则相加

if (current.index == monomial.index) {

current.coefficient += monomial.coefficient;

break;

} else if (current.next == null) { // 否则直接扔到最后

current.next = monomial;

break;

}

current = current.next;

}

}

}

public void append(double c, int i) {

append(new Monomial(c, i));

}

public String toString() {

StringBuffer sb = new StringBuffer();

Monomial current = first;

while (current.next != null) {

sb

.append("(" + current.coefficient + "x^" + current.index

+ ") + ");

current = current.next;

}

sb.append("(" + current.coefficient + "x^" + current.index + ")");

return sb.toString();

}

// 两个多项式相加

public Polynomial add(Polynomial p2) {

Polynomial result = new Polynomial();

Monomial current = this.first;

while (current != null) {

result.append(current.coefficient, current.index); // Examda提示:注意这里

current = current.next;

}

current = p2.first;

while (current != null) {

result.append(current.coefficient, current.index);

current = current.next;

}

return result;

}

// 两个多项式相减 this- p2

public Polynomial substract(Polynomial p2) {

Polynomial result = new Polynomial();

Monomial current = this.first;

while (current != null) {

result.append(current.coefficient, current.index); // 注意这里

current = current.next;

}

current = p2.first;

while (current != null) {

result.append(-current.coefficient, current.index);

current = current.next;

}

return result;

}

/**

* this * p2

*

* @return

*/

public Polynomial multiply(Polynomial p2) {

Polynomial result = new Polynomial();

Monomial c1 = this.first;

Monomial c2 = p2.first;

while (c1 != null) {

while (c2 != null) {

result.append(c1.coefficient * c2.coefficient, c1.index

+ c2.index);

c2 = c2.next;

}

c1 = c1.next;

c2 = p2.first;

}

return result;

}

public Polynomial divide(Polynomial p2) {

// todo 实现相除

return null;

}

public static void main(String[] args) {

Polynomial p1 = new Polynomial();

p1.append(2.2, 1);

p1.append(3.3, 2);

p1.append(4.111, 7);

System.out.println("p1: " + p1);

Polynomial p2 = new Polynomial();

p2.append(2.232, 5);

p2.append(3.444, 6);

p2.append(5.777, 1);

System.out.println("p2: " + p2);

Polynomial result = p1.add(p2);

System.out.println("加: " + result);

result = p1.substract(p2);

System.out.println("减: " + result);

result = p1.multiply(p2);

System.out.println("乘: " + result);

}

}

/**

* 单项式

*/

class Monomial {

double coefficient; // 系数

int index; // 指数

Monomial next; // 后继结点

public Monomial() {

}

public Monomial(double c, int i) {

this.coefficient = c;

this.index = i;

}

}

用Java语言实现求一个矩阵的特征多项式的程序代码怎么写?跪求高人指点~~~

矩阵规模如何?

如果矩阵比较小 (~10), 可以直接按照定义来计算, P[x] = det( x*I - A); 其中det是一个矩阵的行列式; 可以按照定义直接迭代求;

如果矩阵比较大(100), 可以先求特征值, 然后构造矩阵特征多项式 P[x] = (x-x1)*(x-x2)... (x-xn), 其中xi为矩阵的第i个特征值.


本文名称:Java构建多项式的代码 采用生成多项式
文章分享:http://azwzsj.com/article/doddeci.html