当前位置:文档之家› 多项式辗转相除法求最大公因式

多项式辗转相除法求最大公因式

多项式辗转相除法求最大公因式
多项式辗转相除法求最大公因式

#include

#include

#include

struct chain //定义一个多项式的结构体

{

int n; //该多项式的最高次数

double *an; //存放多项式的系数

};

void creat_chain(struct chain *c) //建立一个多项式

{

int i,n;

double ai;

printf("请输入该多项式最高次数:");

scanf("%d",&n);

(*c).n = n;

(*c).an = (double *)calloc(n+1,sizeof(double)); //给该多项式系数动态分配内存printf("按下列格式输入系数:(例如x^4 + 2x^3 - 7x^1 + 5 输入:1 2 0 -7 5)\n");

printf("等待输入:");

for(i=n;i>=0;i--)

{

scanf("%lf",&ai);

(*c).an[i] = ai;

}

}

void show(struct chain c) //按照多项式的格式显示多项式

{

int i=c.n;

printf("多项式是:");

while(i>=0)

{

if((i!=c.n)&&(c.an[i]>=0))

printf(" + ");

switch(i)

{

case 1:printf("%.2lfX",c.an[i]);break;

case 0:printf("%.2lf",c.an[i]);break;

default:printf("%.2lfX^%d",c.an[i],i);break;

}

i--;

}

printf("\n");

}

void do_add(struct chain *ch,struct chain ch1,struct chain ch2) //两个多项式求和{

int i;

if(ch1.n>=ch2.n)

{

(*ch).n = ch1.n; //求和之后多项式的最高次应是ch1和ch2中较高的次数

(*ch).an = (double *)calloc((*ch).n+1,sizeof(double));

for(i=0;i<=(*ch).n;i++)

{

if(i<=ch2.n)

(*ch).an[i] = ch1.an[i] + ch2.an[i]; //相同次数的系数相加

else

(*ch).an[i] = ch1.an[i]; //直接保ch1中有而ch2中没有的项的系数}

}

else //与上面if相反

{

(*ch).n = ch2.n;

(*ch).an = (double *)calloc((*ch).n+1,sizeof(double));

for(i=0;i<=(*ch).n;i++)

{

if(i<=ch1.n)

(*ch).an[i] = ch1.an[i] + ch2.an[i];

else

(*ch).an[i] = ch2.an[i];

}

}

}

void check_change(struct chain *r) //检验多项式r的最高次数并进行相应的修改{

int i = (*r).n;

while((fabs((*r).an[i])<=1e-5)&&(i>=0)) //依次从高次项向低次项进行系数检验i--;

(*r).n = i; //注意:如果多项式r为0,这里i=-1

}

bool check_zero(struct chain r) //检验多项式r的最高次数

{

int i;

for(i=0;i<=r.n;i++)

if(fabs(r.an[i])>=1e-6) //如果一旦有一个不为零,返回false

return false;

return true; //全为零的情况下返回true

}

void do_div(struct chain ch1,struct chain ch2) //辗转相除法,公式:ch1 = q*ch2+r; {

int i = 0,j;

double tmp;

struct chain q,r;

if(check_zero(ch2)) //判断所除的多项式是否为0,若为0,退出;

{

printf("所除的多项式不能为0!\n");

exit(0);

}

q.n = ch1.n - ch2.n; //q的最高次数为ch1和ch2最高次数相减

r.n = ch1.n - 1;

r.an = (double *)calloc(r.n+1,sizeof(double)); //为系数动态分配内存

q.an = (double *)calloc(q.n+1,sizeof(double));

while(i<=q.n)

{

r.n = ch1.n - 1; //r的最高次数为ch1的最高次数减1

q.an[q.n-i] = ch1.an[ch1.n]/ch2.an[ch2.n]; //多项式q的最高次项系数

tmp = q.an[q.n-i];

for(j=r.n;j>=0;j--)

{

if(j>=q.n-i)

r.an[j] = ch1.an[j] - tmp*ch2.an[j-q.n+i]; //高次对应相减

else

r.an[j] = ch1.an[j]; //低次保留

}

if(check_zero(r)) break; //若余式r系数全为零,退出循环

ch1 = r; //ch2没除干净,将r赋给ch1,继续除ch2

i++;

}

printf("---------------------------------------------\n");

printf("q(x):");

show(q); //显示每一步的多项式q

printf("r(x):");

show(r); //显示每一步与q对应的多项式r

printf("---------------------------------------------\n");

check_change(&r); //修改余式r的最高次数,即修改r.n

if(r.n==-1) //r.n==-1时,说明最大公因式已经找到

{

printf("所求最大公因式的");

show(ch2); //输出结果

free(r.an); //回收动态分配内存

}

else

do_div(ch2,r); //辗转相除

}

void main()

{

struct chain ch1,ch2,ch;

printf("***************建立第一个多项式**************\n\n");

creat_chain(&ch1);

show(ch1);

printf("***************建立第二个多项式**************\n\n");

creat_chain(&ch2);

show(ch2);

printf("***************以上两个多项式求和**************\n\n");

do_add(&ch,ch1,ch2);

show(ch);

printf("***************以上两个多项式求公因式**************\n\n");

do_div(ch1,ch2);

//回收动态分配内存

free(ch1.an);

free(ch2.an);

free(ch.an);

}

多项式的除法原理(综合除法)

1 2 4 1 3 3 7 ++++ ++多項式的除法原理(綜合除法) 1.多項式的除法定理: 設f (x)、g (x)是兩個多項式,且g (x)0≠,則恰有兩多項式q (x)及r(x)使得 f (x )q(x )g(x )r =?+成立,其中r(x)0=或r(x)

222 ax (b ae) x- e ax bx c ax aex (b ae)x c (b ae)x-e(b ae) c be ae ++++-++++++ 2a x bx c (x e )[a x (b a e )] ++=-++ 綜合除法表示: +e 餘式 思考1: 為何本來長除法中除式為(x -e),但是在綜合除法中卻變 (+e),請提出合理的解釋想法。 思考2: 設多項式32f (x)x 3x 4x 1=+-+,則 (1)請利用綜合除法,以x-1除f(x),商式為何?餘式為何? (2)設32f (x)a(x 1)b (x 1)c(x 1)d =-+-+-+,則a 、b 、c 、d 為何? Hinet :試利用多項式除法跟綜合除法兩種方法,並比較之。 2 a b c ae e(b ae)a (b ae) c be ae ++++++++

§1.2 最大公约数与辗转相除法

§2 最大公约数与辗转相除法 一、有关概念 1、定义:123,,,...,n a a a a 的公因数, ()123,,,...,n a a a a 及()123,,,...,1n a a a a = 2、说明:1公因数不可能是0;1是必然的公因数; 2 0与非零数b 的公因数就是b 的因数; 3两两互质与互质的关系; 4 (,)(,)a b b a = 5(0,)b b = ; (1,)1b = 6若(,)a b b =,则b ∣a 7若12(,)1a a =,则()123,,,...,1n a a a a = 3、定理:123,,,...,n a a a a 与123,,,...,n a a a a 相同的公因数。 ? ()123,,,...,n a a a a =123(,,,...,)n a a a a 4、求最大公因数的方法: 1观察法; 2短除法;3辗转相除法。

二、辗转相除法 定理1:设,,a b c 是不全为0的整数,且a bq c =+,q 为整数 则(1),a b 与,b c 有相同的公因数; (2)()(),,a b b c = 定理2:设,a b 为正整数,则(),n a b r = 推论:,a b 的公因数与(),a b 的因数相同。 例1 证明:当n N +∈时, 143 214 n n ++为既约的真分数。 例2 求()1859,1573-及()169,121 例3 某数除193余4,除1087余7,求符合要求的最大整数。 例4 某数除300,262,205余数相同,求这个数。 三、最大公因数的性质 1、()(),,am bm a b m m =为正整数 2、() ,,a b a b δδδδ?? = ??? 为,a b 的公因数 3、()(),1,,a b a b a b ??= ? ??? 4、设()122,a a d =, ()233,d a d =,()1,n n n d a d -= 则()123,,,n n a a a a d = 例5 设(),1a b = ,求(),a b a b +-

如何进行多项式除以多项式的运算

如何进行多项式除以多项式的运算 多项式除以多项式,一般可用竖式计算,方法与算术中的多位数除法相似,现举例说明如下: 例1 计算)4()209(2+÷++x x x 规范解法 ∴ .5)4()209(2+=+÷++x x x x 解法步骤说明: (1)先把被除式2092 ++x x 与除式4+x 分别按字母的降幂排列好. (2)将被除式2092++x x 的第一项2x 除以除式4+x 的第一项x ,得x x x =÷2,这就是商的第一项. (3)以商的第一项x 与除式4+x 相乘,得x x 42+,写在2092++x x 的下面. (4)从2092++x x 减去x x 42+,得差205+x ,写在下面,就是被除式去掉x x 42+后的一部分. (5)再用205+x 的第一项x 5除以除式的第一项x ,得55=÷x x ,这是商的第二项,写在第一项x 的后面,写成代数和的形式. (6)以商式的第二项5与除式4+x 相乘,得205+x ,写在上述的差205+x 的下面. (7)相减得差0,表示恰好能除尽. (8)写出运算结果,.5)4()209(2+=+÷++x x x x 例2 计算)52()320796(2245--÷+-+-x x x x x x . 规范解法

∴ )52()320796(2245--÷+-+-x x x x x x 163323-+-=x x x ……………………………余29-x . 注 ①遇到被除式或除式中缺项,用0补位或空出;②余式的次数应低于除式的次数. 另外,以上两例还可用分离系数法求解.如例2. ∴ )52()320796(2 245--÷+-+-x x x x x x 163323-+-=x x x ……………………………余29-x . 8.什么是综合除法? 由前面的问题4我们知道两个多项式相除可以用竖式进行,但当除式为一次式,而且它的首项系数为1时,情况比较特殊. 如:计算)3()432(3 -÷-+x x x . 因为除法只对系数进行,和x 无关,于是算式(1)就可以简化成算式(2). 还可以再简化.方框中的数2、6、21和余式首项系数重复,可以不写.再注意到,因除式的首项系数是1,所以余式的首项系数6、21与商式的系数重复,也可以省略.如果再

多项式最大公因式的求解

多项式最大公因式的求法 定理1 设)(x)(n ,f (x),(x),f f n 221≥ 是P[x]中n 个多项式.P[x]中多项式d(x)称为 )(x)(n ,f (x),(x),f f n 221≥ 的最大公因式,如果它满足下面的两个条件: (1)d(x)是(x),f (x),(x),f f n 21的公因式. (2)(x),f (x),(x),f f n 21的公因式全是d(x)的因式. 定理2 设)(),(),(x h x g x f 是][x P 中的多项式,P[x]中多项式d(x)是)(),(),(x h x g x f 的最大公因式,c 是任意的非零常数,则有))(),()()(())(),(()(x g x g x h x cf x g x f x d -==. 证明:当)(x f 、)(x g 有一个为零,例如0)(=x g ,那么结论显然成立. 当0)(≠x g 时,则有)()(x f x d ,)()(x g x d . 从而)()()()(x g x h x cf x d -,即)(x d 是)()()(x g x h x cf -与)(x g 的一个公因式,令 )()()()(x g x h x cf x c -,)()(x g x c .根据整除的性质,我们有)()(x f x c ,所以)()(x d x c . 所以))(),()()(())(),(()(x g x g x h x cf x g x f x d -== 方法1:用辗转相除法求最大公因式 引理 如果 )3(121≥n (x),f (x),(x),f f n- 的最大公因式存在,那么 ) 2(21≥n (x),f (x),(x),f f n 的 最 大 公 因 式 也 存 在 , 且 (x)) (x)),f ,f (x),(x),f ((f (x))(x),f ,f (x),(x),f (f n n-n n-121121 =. (1) 证明:由题意,假设(x),f (x),(x),f f n-121 的最大公因式为)(1x d ,那么(x)d 1与(x)f n 的最大公因式)(x d 也是存在的. (2) 又由(1)、(2)式,可知n)i (x), (d(x)|f i ≤≤1. 假设c(x)是)(x)(n ,f (x),(x),f f n 221≥ 的一个公因式,由(1)式可得(x)c(x)|d 1.这样c(x)就是(x)d 1与(x)f n 的一个公因式,再由(2)式可得c(x)|d(x). 所以(x)) (x),f ,f (x),(x),f (f d(x)n n-121 =. 定理3 设)2)((,),(),(21≥n x f x f x f n 是][x P 中的n 个多项式,则在P[x]中存在一个最大公因式d(x),且d(x)可以表示成(x),f (x),(x),f f n 21的一个组合,即有p[x]中多项式 (x),u (x),(x),u u n 21使(x)(x)f u (x)(x)f u (x)(x)f u d(x)n n +++= 2211. 由定理3对一般情况, 设1 1110110(),()n n n n n n n n f x a x a x a x a g x b x b x b x b ----=++ ++=++ ++,不妨设m n ≥

多项式的综合除法

[1] 試求以x – 1 除x 6 – 1 所得的商式及餘式. 答案: 1 + 0 + 0 + 0 + 0 + 0 – 1 所得的商式為x 5 + x 4 + x 3 + x 2 + x + 1 餘式為0 [2] 試求以x – 2 除x 6 – 1 所得的商式及餘式. [3] 試求以x – 2 除x 6 – 1 所得的商式及餘式. [4] 試求以x + 1 除x 6 – 1 所得的商式及餘式. 答案: 1 + 0 + 0 + 0 + 0 + 0 – 1 所得的商式為x 5 – x 4 + x 3 – x 2 + x – 1 餘式為0 [5] 試求以x + 2 除x 6 – 1 所得的商式及餘式. [6] 試求以x +3 除x 6 – 1 所得的商式及餘式. [7] 試利用綜合除法求)4()4312732982(234567-÷+-++-+-x x x x x x x x 的商式與餘式。 答案: 2 + 0 + 1 - 5 - 18 + 1 – 8 + 11 商式為818522346-+--+x x x x x ,餘式為11。

[8] 利用綜合除法求x x x x x f +-+=2342)(除以下列各式所得的商式與餘式:23 ,2+-x x 。 答案:(1))(x f 除以 x – 2 1 + 2 – 1 + 1 + 0 故商式為157423+++x x x ,餘式為30。 (2))(x f 除以23+x 1 + 2 – 1 + 1 + 2 -8 - +34 - 31 +942717-+81 61 故商式為81612717943123+-+x x x ,餘式為81122 -。 [9] 設1)(3 -=x x f ,22)(-=x x g ,試求利用綜合除法求 (1))()(x g x f ÷之商=____ (2))()(x g x f ÷餘式為____ (3)____)2 1(=f [10] 設1)(3+=x x f ,12)(-=x x g ,試求利用綜合除法求)()(x g x f ÷之商=_____,餘式為_____,____)2 1(=f [11]設62451007073125)(234-+++=x x x x x f ,則)3(f =____

多项式的整除问题

浅谈多项式的整除问题 摘要:研究多项式以及多项式的整除理论,并利用这些理论,探究多项式整除的判别方法 关键词:多项式;整除;整除理论;判别方法 Discusses the multinomial shallowly the aliquot question Abstract:Research multinomial as well as many item of aliquot theory,and using these theories,inquisition multinomial aliquot distinction method Key words:Multinomial;Aliquot;Aliquot theory;Distinguished method 本文引入和研究多项式的整出问题,研究的主要内容有:研究多项式以及多项式的整除理论[1];并利用这些理论,探究多项式整除的判别方法. 1.利用单位根及因式定理 此方法的关键是熟练掌握因式定理[2]和单位根的性质. 例1 证明2331 32 1m n p x x x x x ++++|++(m , n , p 是三个任意的正整数). 证明 可求得2 10x x ++=的根为1132i -+ ω= ,2 132 i -- ω= ,所以 2 121()()x x x x ++=-ω-ω 又因32 1(1)(1)0i i i i ω-=ω-ω+ω+= (1,2)i =,知31i ω=,从而333m n p i i i ω=ω=ω 设 331 32 ()m n p f x x x x ++=++则有 331 32 2 ()10,(1,2)m n p i i i i i i f i ++ω=ω+ω+ω=+ω+ω== 故由因式定理知12()()()x x f x -ω-ω|,即21() x x f x ++|. 2.利用熟知的乘法公式 此方法的关键是在于熟练的掌握乘法公式,(例如: (1)(2) 1()1 (1)(1)n m s m m s m s m x x x x x x ---=-=- + +++ [3] 等)理解公式包涵的 整除意义,再去解题. 例2 证明1d x -整除1n x -当且仅当d 整除n . 证明 充分性 设d n |,假定n dt =,则有 (1) (2) 1()1(1)(1)n d t d d t d t d x x x x x x ---=-=-++++ 从而有11d n x x -|- 必要性 已知11d n x x -|-,假定n dt r =+,0r d ≤<,则 111(1)(1)n dt r dt r r r dt r r x x x x x x x x x +-=-=?-+-=-+-

辗转相除算法的简介

辗转相除算法的简介 在数论中,辗转相除法(国际上一般称为Euclidean Algorithm 或Euclid's Algorithm,即欧几里得算法)是一种求任意两个欧几里得环(Euclidean Domain)中的单位(如:整数)的最大公约数的算法。这个算法的一个重要特点就是其不需要通过分解因式来求取最大公约数。辗转相除法正因为其易操作性与易实现性而成为了计算机编程中的一个重要的求最大公约数的常用算法。 辗转相除法的过程描述与应用 给出两个自然数a 和b:检查b是否为0;如果是,则a为最大公约数。如果不是,则分别用b和a 除b的余数作为上一步中的 a 和 b重复这一检查步骤。 正如上面所提到的,辗转相除法是编程中求最大公约数的常用算法,那么下面就是一个C++中通过递归实现辗转相除法的程序段范例: [cpp]view plaincopy 1.int gcd(int a, int b) 2.{ 3.return b == 0 ? a : gcd(b, a % b); 4.} 注:过程名设为gcd是为了更明显的标明这段程序的意图。因为gcd 是greatest common divisor (最大公约数)的缩写。再编写辗转相除法求最大公约数的过程是,最好将其命名为gcd 以方便他人日后阅读。 辗转相除法的证明 设两数为a、b(a > b),求它们最大公约数的步骤如下: 设q = a / b,r = a % b, 得a=bq+r(0≤r<b)。 1)若r = 0, 则b是a和b的最大公约数。 2)若r≠0,则继续考虑。首先,应该明白的一点是任何a 和b 的公约数都是r 的公约数。要想证明这一点,就要考虑把r 写成r=a-bq。现在,如果a 和b 有一个公约数d,而且设a=sd , b=td, 那么r = sd-tdq = (s-tq)d。因为这个式子中,所有的数(包括s-tq )都为整数,所以r 可以被d 整除。对于所有的d 的值,这都是正确的;所以a 和b 的最大公约数也是b 和r 的最大公约数。因此我们可以继续对b 和r 进行上述取余的运算。

余式定理 因式定理

余式定理 1公式 整系数多项式f(x)除以(x-a)商为q(x),余式为r,则f(x)=(x-a)q(x)+r。 如果多项式r=0,那么多项式f(x)必定含有因式(x-a)。反过来,如果f(x)含有因式(x-a),那么,r=0。 2概念 当一个多项式f(x) 除以(x –a) 时,所得的余数等于f(a)。 例如:当f(x)=x^2+x+2 除以(x –1) 时,则余数=f(1)=1^2+1+2=4。 3推论 当一个多项式f(x) 除以(mx –n) 时,所得的余数等于f(n/m)。 例如:求当9x^2+6x–7 除以(3x + 1) 时所得的余数。 设f(x) = 9x^2 + 6x –7,则余数f(-1/3)=1–2–7=-8。 4例题 (全国港澳台华侨联合招生考试题型) 设f(x)以(x-1)除之,余式为8,以(x2+x+1)除之的余式为(7x+16),求(x^3-1)除之的余式为多少? 解:根据题意,得f(1)=8,f(x)=(x^2+x+1)g(x)+7x+16。 因为x^3-1=(x-1)(x^2+x+1) 所以f(x)=(x-1)(x^2+x+1)g(x)+a(x^2+x+1)+7x+16 (其中a(x2+x+1)+7x+16为余式)又f(1)=8 所以f(1)=3a+7+16=8 所以a=-5,因此余式为-5x^2+2x+11 因式定理 1定义 为余式定理的推论之一:如果多项式f(a)=0,那么多项式f(x)必定含有因式x-a。反过来,如果f(x)含有因式x-a,那么,f(a)=0。 2例题 如图, 此题可以利用完全立方公式解答,但较为繁琐。 仔细观察不难发现,当x=y时,原式的值为0。 根据因式定理可知:原式必有因式x-y同样的, 可以得到原式必有因式y-z和z-x(也可以由原式 为对称多项式直接得到) 然后再用待定系数法(结合赋值法)求出待定系 数即可 3意义

辗转相除法求最大公约数和最小公倍数及其c语言实现

又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至3000年前。 在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i 和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。 两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相减法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21(252 = 21 ×12;105 = 21 × 5);因为252 ? 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。由辗转相除法也可以推出,两数的最大公约数可以用两数的整数倍相加来表示,如21 = 5 ×105 + (?2) × 252。这个重要的等式叫做贝祖等式。 简单的想法 设两数为a、b(a>b),b最大公约数(a,b)的步骤如下: 用b除a,得a=bq......r1(0≤r1)。若r1=0,则(a,b)=b; 若r1≠0,则再用r1除b,得b=r1q......r2 (0≤r2).若r2=0,则(a,b)=r1, 若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止。其最后一个非零除数即为(a,b)。

设两数为a、b(b1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c】 从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。 证毕。 自然语言描述 辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的: 1. 若r 是a ÷b的余数, 则gcd(a,b) = gcd(b,r), 2. a 和其倍数之最大公因子为a。 另一种写法是: 1. a ÷b,令r为所得余数(0≤r

多项式辗转相除法求最大公因式

#include #include #include struct chain // 定义一个多项式的结构体 { int n; // 该多项式的最高次数 double *an; // 存放多项式的系数 }; void creat_chain(struct chain *c) // 建立一个多项式 { int i,n; double ai; printf(" 请输入该多项式最高次数:"); scanf("%d",&n); (*c).n = n; (*c).an = (double *)calloc(n+1,sizeof(double)); // 给该多项式系数动态分配内存printf(" 按下列格式输入系数:(例如x^4 + 2x^3 - 7x^1 + 5 输入:1 2 0 -7 5)\n"); printf(" 等待输入:"); for(i=n;i>=0;i--) { scanf("%lf",&ai); (*c).an[i] = ai; } } void show(struct chain c) // 按照多项式的格式显示多项式 { int i=c.n; printf(" 多项式是:"); while(i>=0) { if((i!=c.n)&&(c.an[i]>=0)) printf(" + "); switch(i) { case 1:printf("%.2lfX",c.an[i]);break; case 0:printf("%.2lf",c.an[i]);break; default:Pri ntf("%.2lfX^%d",c.a n[i],i);break; } i--; } Printf("\n");

多项式的整除性

4.3 多项式的整除性 教学内容:4.3多项式的整除性 教学目标:正确理解多项式的整除概念及性质。理解和掌握带余除法。 授课时数:2学时 教学重点:多项式整除的概念及基本性质 教学难点:带余除法定理及证明(定理4.3.1及证明) 教学过程: 在][x F 中除法不是永远可以实施的,因此多项式整除性的研究在多项式理论中占有重要的地位。 一、多项式整除的概念及性质 1. 定义 定义 1 设][)(),(x F x g x f ∈.如果存在][)(x F x h ∈,使得)()()(x h x f x g =,则称)(x f 整除(能除尽))(x g ,记作)(|)(x g x f 。此时说)(x f 是)(x g 的因式,)(x g 是) (x f 的倍式。如果满足条件的)(x h 不存在,即对任意)()()(],[)(x h x f x g x F x h ≠∈,则称)(x f 不能整除)(x g , 记作()|()f x g x . 由定义1知:1?0|)(],[)(x f x F x f ∈?;特别地,0|0. 2?)(|,x f c F c ∈?. 3?,c d F ?∈,0≠c ,有d c |.如2|0。 4?高次多项式不能整除低次多项式。 课堂思考题:1)能整除任何多项式的多项式是什么? 2)能被任何多项式整除的多项式是什么? 2. 整除的基本性质

我们可以将整数的整除性质平移过来 1) 若)(|)(),(|)(x h x g x g x f ,则)(|)(x h x f ; 2) 若)(|)(),(|)(x g x h x f x h ,则))()((|)(x g x f x h ±; 3) 若)(|)(x f x h ,则对任意)(x g ,有)()(|)(x g x f x h ; 4) 若)(x h |i f )(x ,()(),1,2,3,,,i c x F x i n ?∈= 则 | )(x h ∑=n i i i x f x c 1 )()(; (整除倍式和) 5) 对任一多项式(),()|(),|()(0,)f x cf x f x c f x c c F ≠∈; 6) 若),(|)(),(|)(x f x g x g x f ,则存在0,≠∈c F c ,使)()(x cg x f =. 二.带余除法 ⒈ 实例(中学中的多项式除多项式) 例2 3 2 2 ()26,()1f x x x x g x x x =+++=++,求()g x 除()f x 所得商式()q x 及余式()r x 。 由中学的知识,得121()()(),()()()()1f x f x g x x r x f x f x g x =-?==-?, ()()()()1()(1)()f x g x x r x g x g x x r x =++=++。故()1,()5q x x r x x =+=-+, (())(())r x g x ??

辗转相除法教学设计

《辗转相除法》教学设计 一.教材分析 本节课是人教版必修三第一章《算法初步》第三节《算法案例》的第一课时,作为案例课,在整章中既是算法的总结,又是一个提升。教材突出了数学的人文价值,又为学生提供了探索算法的平台。二.学情分析 本节课的教授对象是高一学生,他们已经具备一定的数学基础和编程能力,已经掌握了用短除法求最大公约数的方法。现在学习辗转相除法,学生能够掌握辗转相除法的步骤,但是在具体做法的理解上并不到位,需要合作探究。 三.教学目标 1. 知识与技能目标: (1)理解辗转相除法的原理,能用辗转相除法求两正整数的最大公约数; (2)能读懂辗转相除法的程序框图,并能写出对应的程序语句。 2. 过程与方法目标:在学习辗转相除法的过程中,对比短除法,体会辗转相除法的优势,及其体现的化归思想。 3. 情感态度价值观: (1)通过辗转相除法的应用,提升计算能力,提高运算准确性。(2)通过程序的实际操作来体会算法的实用性、便捷性和高效性。四.教学重点和难点 1. 重点:辗转相除法的步骤及算法的理解。

2. 难点:辗转相除法的原理的理解,及辗转相除法的算法的理解。 五.预设问题:如何理解辗转相除法的原理。 六.预习反馈:1.为什么除数与余数的公约数也是被除数与除数的公约数?(1、2、6、8、9组) 2.为什么最后一步的除数为最大公约数?(1、3、6、8组) 3.怎样理解辗转相除法的算法?(3、5、11组) 七.教学课时:1课时 八.教学方法:依据“大三步”教学模式,以问题及问题链为主线,调动学生的学习积极性,使学生真正参与到课堂中,通过小组合作探究,充分的展示自己。 九.教学手段:利用多媒体辅助教学,可以降低学生的学习难度、增加课堂容量。 十.教学过程 (一)创设情景,引入课题 1.首先提出问题:在小学,我们已经学过求最大公约数的知识,你能求出18与24的公约数吗? 2.进一步提出问题,如果用短除法求6757 与8729的最大公约数,可不可以行,方不方便?如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数? (二)展示反馈问题 1.为什么除数与余数的公约数也是被除数与除数的公约数?

多项式的最大公因式

多项式的最大公因式 问题: (一). 多项式的最大公因式的定义是什么? 设f(x)与g(x)是P[x]中两个多项式,P[x]中多项式d(x)称为f(x)与g(x)的最大公因式,如果满足下面两个条件: (1).d(x)是f(x)与g(x)的公因式; (2).f(x),g(x)的公因式全是d(x)的因式。 我们约定用( f(x),g(x))表示首项系数为1的那个最大公因式。 定理1:对于P[x]中任意两个多项式f(x),g(x),在P[x]中存在一个最大公因式d(x),且d(x)可以表示成f(x),g(x)的一个组合,即有P[x]中多项式u(x),v(x)使 d(x)=u(x)f(x)+v(x)g(x) 引理:设f(x),g(x),q(x),h(x)∈F(x),g(x)≠0,且 f(x)=g(x)q(x)+h(x) 则f(x)与g(x)与q(x)与h(x)有相同的公因式,因而有相同的最大公因式,且 ( f(x),g(x))=( g(x),h(x)) 定理2:F(x)的任意两个多项式f(x)与g(x)一定存在最大公因式。 (二).用来求最大公因式的方法 (1).辗转相除法: 如果f(x),g(x)∈P[x],g(x)≠0,且q q(q),q q(q)∈P[x],使 f(x)=q1(q)g(x)+q1(q) g(x)=q2(q)q1(q)+q2(q) q1(q)=q3(q)q2(q)+q3(q)

?? q q?2(q)=q q(q)q q?1(q)+q q(q) q q?1(q)=q q+1(q)q q(q)+0 其中?(q q(q))≥0,则q q(q)是f(x)与g(x)的一个最大公因式。 (2).串位加减法 (3).矩阵求法: A=(f(x) g(x) )一系列初等行变换 → ( d(x) ) d(x)=( f(x),g(x)) 例1.设f(x)=q4+3q3?q2?4x?3 g(x)=3q3+10q2+2x?3 求( f(x),g(x)) 解:法1辗转相除法。

辗转相除法证明

数学知识点滴1.辗转相除法证明; 2.分数加法教学设计:

3.分数的意义:

4.阿拉伯数字最早起源于印度,在公元前500年,印度人就已经开始使用了,大约在8世纪前后才传到阿拉伯,9世纪阿拉伯人开始使用阿拉伯数字,大约在1100年由阿拉伯人传到欧洲,因此欧洲人称它为阿拉伯数字。阿拉伯数字传到中国是13世纪以后,1892年才在我国正式使用。 5.约分 “可半者半之,不可半者,副置分母,子之数,以少减多,更相减损,求其等也。以等相约之。”(吴文俊,1998a,p。58) 这种约分方法的具体思路是:首先判断分子与分母,如果都是偶数,就把分子分母分别除以2。如果是奇数,就把分子与分母相减(大减小),如果差与减数相等,差就是分子与分母

的最大公约(因)数,如果不相等,就把所得的差与减数再相减(大减小),这样一直减下去,直到新的差与新的减数相等为止,这个新的差就是原来分子与分母的最大公约数。(更相减损法) 6.分数除法 其一,被除数,除数之一含分数,另一个是整数,就先通分,后把被除数与除数的分子相除,如“方田”章第17题解题过程如下 813 ÷7=253 ÷7=8×3+13 ÷7×33 =(8×3+1)÷(7×3)=1421 其二,被除数,除数都含分数,就同时通分,后把被除数与除数的分子相除,如“方田”章第18题解题过程如下 (6+13 +34 )÷313 =6×12+4×1+3×312 ÷ (3×3+1)×412 =(6×12+4×1+3×3)÷【(3×3+1)×4】=218 这种计算方法虽然比我们现在用的“颠倒相乘法”麻烦,但是更容易理解。

算法案例——辗转相除法

算法案例——辗转相除法 育才中学潘敏 一、教材分析 选自苏教版普通高中课程标准实验教科书必修3第一章第4节。 1、地位作用: 与传统教学内容相比,《算法初步》为新增内容,算法是计算机科学的重要基础,从日常生活的电子邮件发送到繁忙的交通管理,从与人们生产、生活息息相关的天气预报到没有硝烟的战争模拟等等都离不开计算机算法。算法思想已经渗透到社会的方方面面,算法思想也逐渐成为每个现代人应具有的数学素养。 在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程,求解方程的步骤,以及将要学习的数列求和等等,完成这些工作都需要一系列程序化的步骤,这就是算法思想。 本节内容是探究古代算法案例――辗转相除法,巩固算法三种描述性语言(自然语言、流程图和伪代码),提高学生分析和解决问题的能力。 2、教学目标: (1)知识目标: ①理解辗转相除法原理; ②能用自然语言、流程图和伪代码表达辗转相除法; ③能应用迭代算法思想。 (2)能力目标: ①培养学生把具体问题抽象转化为算法语言的能力; ②培养学生自主探索和合作学习的能力。 (3)情感目标: ①使学生进一步了解从具体到抽象,抽象到具体的辨证思想方法,对学生进行辨证唯物主义教育; ②创设和谐融洽的教学氛围和阶梯形问题,使学生在活动中获得成功感,从而培养学生热爱数学、积极学习数学、应用数学的热情。 3、教学重点与难点: (1)教学重点: ①理解辗转相除法原理; ②能用自然语言、流程图和伪代码表达辗转相除法。 (2)教学难点: ①理解和区分两种循环结构表达辗转相除法; ②能应用迭代算法思想。 二、教法学法 1、教法:以问题为载体,有引导的对话,让学生经历知识的形成过程和发展过程,从而突出教学重点,并采用多媒体教学,增加课堂容量,有利于学生活动的充分展开。 2、学法:以观察、讨论、思考、分析、动手操作、自主探索、合作学习多种形式相结合,引导学生多角度、多层面认识事物,突破教学难点。

多项式的综合除法

4.多项式的综合除法 多项式的除法定理: 设)(),(x g x f 是两个多项式,且0)(≠x g ,则恰有两个多项式)(),(x r x q 使得 )()()()(x r x q x g x f +=成立,其中0)(=x r 或者deg )(x r deg )(x g 。 (1),称为余式。称为商式,称为除式,称为被除式,)()()()(x r x q x g x f (2),被除式=除式×商式+余式。 (3),简式:A=BQ+R 综合除法中定义)()(a x x g -为一次多项式,a 为为任意数。 一、用综合除法写出)(x f 按降幂排列的系数,设 01111)(c x c x c x c x f n n n n =+++=-- 则有:)))) ))((((((())) ))(((((()); ))((((()()(143211432143012121101221 n n n n n n n n n n n n n n n n n n ac c a a c a c a c a c a e ac c a a c a c a c a d ac c a a c a c a b e c d c b c ac c a c ac c c e d b ac c a ac c c c c c c a ++++=++++=+++=+++++++-+-------- 则 e c x r x d c x b c x ac c a c x ac c x q n n n n n n n +=++++++++=-----012221211)(,)()())(()()( 注意:缺项的系数为0。

多项式的因式分解 提公因式法练习题

多项式的因式分解 知识点一、因式分解的概念 学一学:看谁算得快:请每题答得最快的同学谈思路,得出最佳解题方法。 22=___________;-ba(1)若a=101,b=99,则 22=____________;-2ab+b若a=99,b=-1,则a (2)2+60x=__________ 20xx=-3,则(3)若 2222 2 2+60x=20x(x+3)20x= (a-b)=(a+b)(a-b) ,a,-2ab+b议一议:观察: a-b,找出它们的特点。 (等式的左边是一个什么式子,右边又是什么形式?) 【归纳总结】把一个多项式表示成若干个多项式的乘积的形式称为吧这个多项式因式分解,也叫分解因式。 选一选:下列代数式变形中,哪些是因式分解?哪些不是?为什么? 22 2+6a (3)3a(1)x-3x+1=x(x-3)+1 ; (2)2m(m-n)=2m = 3a-2mn(a+2) 填一填:2) )( 4 ( x - 知识点二、因式分解与整式乘法的关系 22-b继续观察:(a+b)(a-b)= a, 222,= a (a-b)-2ab+b 2+60x,它们是什么运算?与因式分解有何关系?20x 20x(x+3)=因式分解

22 (a+b)(-ba-b)结合:a整式乘法 说明:从左到右是因式分解,从右到左是整式乘法,因式分解与整式 乘法是相反变形。 二、合作探究 检验下列因式分解是否正确:1. 222 -1=(2x+1)(2x-1) (2)2x;y-xy=xy(x-y); (1)x2 +3x+2=(x+1)(x+2).(3)x 下列各式由左边到右边的变形,哪些是因 式分解,哪些是多项式乘法?2.22-4 1)(x+5)(x+1)= x+6x+5 (2) (x+2)(x-2)= x( (3) 12ax-12ay=12a(x-y) (4) 222 -10xy+25yx=(x-5y) 提公因式法说一说:下列从左到右的变形是否是因式分解,为什么? 132222+t)3t3t+1=;(2t(x +2);(2)2t-2x (1) -+4=2t222;(4)m(x+y)+4xy-y=mx+my=x(x+4y)-y;3 () x 知识点一、提公因式法的概念 学一学: 多项式中各项含有相同因式吗?,它们共有的因式是什么?请将上述 多项式xuxz-xy 分别写成两个因式的乘积的形式。 22-yz--x和中各项含有相同因式吗?议一议:1.多项式mn+mb 2.多项式4xxyy呢? 【归纳总结】如果一个多项式的各项含有公因式,那么就可以把这个

多项式长除法精讲精练

多项式长除法是代数中的一种算法,用一个同次或低次的多项式去除另一个多项式。是常见算数技巧长除法的一个推广版本。它可以很容易地手算,因为它将一个相对复杂的除法问题分解成更小的一些问题。 例计算 写成以下这种形式: 然后商和余数可以这样计算: 1.将分子的第一项除以分母的最高次项(即次数最高的项,此处为x)。结果写在横线 之上(x3÷x = x2). 2.将分母乘以刚得到结果(最终商的第一项),乘积写在分子前两项之下(x2·(x?3) = x3?3x2). 3.从分子的相应项中减去刚得到的乘积(注意减一个负项相当于加一个正项),结果写 在下面。((x3?12x2) ?(x3?3x2) = ?12x2 + 3x2 = ?9x2)然后,将分子的下一项“拿 下来”。 4.重复前三步,只是现在用的是刚写作分子的那两项

5.重复第四步。这次没什么可以“拿下来”了。 横线之上的多项式即为商,而剩下的 (?123) 就是余数。 算数的长除法可以看做以上算法的一个特殊情形,即所有x被替换为10的情形。除法变换 使用多项式长除法可以将一个多项式写成除数-商的形式(经常很有用)。考虑多项式P(x), D(x) ((D)的次数 < (P)的次数)。然后,对某个商多项式Q(x) 和余数多项式R(x) ((R)的系数 < (D)的系数), 这种变换叫做除法变换,是从算数等式 .[1]得到的。

应用:多项式的因式分解 有时某个多项式的一或多个根已知,可能是使用 rational root theorem 得到的。如果一个 n 次多项式 P(x) 的一个根 r 已知,那么 P(x) 可以使用多项式长除法因式分解为 (x-r)Q(x) 的形式,其中 Q(x) 是一个 n-1 次的多项式。简单来说,Q(x) 就是长除法的商,而又知 r 是 P(x) 的一个根、余式必定为零。 相似地,如果不止一个根是已知的,比如已知 r 和 s 这两个,那么可以先从 P(x) 中除掉线性因子 x-r 得到 Q(x),再从 Q(x) 中除掉 x-s ,以此类推。或者可以一次性地除掉二次因子 x 2-(r+s)x+rs 。 使用这种方法,有时超过四次的多项式的所有根都可以求得,虽然这并不总是可能的。例如,如果 rational root theorem 可以用来求得一个五次方程的一个(比例)根,它就可以被除掉以得到一个四次商式;然后使用四次方程求根的显式公式求得剩余的根。 寻找多项式的切线 §2 一元多项式及整除性 下面主要讨论带余除法,最大公因式,互素的性质,因式分解,重根判定,求有理根的方法。 学习本章应掌握:求最大公因式,求有理根的方法。 定义4 设是一个数域, 是一个文字,形式表达式 其中 是数域中的数, 是非负整数) 称为数域上的一元多项式,通常记为。称为次项的系数。 例如: 是多项式 不是多项式,因为不是非负整数。 定义5 如果数域上多项式,同次项系数都相等,称与相等 记为: = 一个多项式里可以人员添上系数为0的项,约定 定义6 在(1)中如果 ,称为多项式的次数,记 P x ) 1( 0111a x a x a x a n n n n ++++-- i a P n P )(x f k k x a k x x x f 521 )(3+=123)(-++=x x x x g 1-P )(x f )(x g )(x f )(x g )(x f )(x g i i x x =?10 ≠n a n 01)(a x a x a x f n n +++=

用辗转相除法求最大公约数

辗除法 辗除法(zhǎnchúfǎ)——辗转相除法,又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法,其可追溯至3000年前。它首次出现于欧几里德的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。它并不需要把二数作质因子分解。 证明: 设两数为a、b(b0 returngcd(b, a mod b); else return a; } 或纯使用循环: functiongcd(a, b) { define r as integer; while b ≠ 0 { r := a mod b; a := b; b := r;

相关主题
文本预览
相关文档 最新文档