POJ 3526 The Teacher’s Side of Math 已翻译

本文介绍了一个数学问题的解决方法,旨在帮助教师创建包含特定复杂数根(形如m√a+n√b)的多项式方程。讨论了如何找到满足这些根的最小整系数多项式,强调了多项式的次数等于mn的事实。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述


学生在数学类中常规执行的任务之一是求解多项式方程。给定多项式,例如X2-4X + 1,找到它的根(2±√3)。

如果学生的任务是找到给定多项式的根,那么教师的任务是找到具有给定根的多项式。 Galsone女士是一个热心的数学老师,无聊找到解决方案的二次方程,就像a +b√c一样简单。她想要制作更高程度的方程,它的解更复杂一些。像数学类中的常见问题一样,她希望将所有系数保持为整数,并保持多项式的程度尽可能小(只要它具有指定的根)。请帮助她写一个程序,执行老师的任务。

你得到一个数字t的形式:

t =m√a+n√b

其中a和b是不同的素数,m和n是大于1的整数。

在这个问题中,要求你找到整数的t的最小多项式,即满足以下条件的多项式F(X)= adXd + ad-1Xd-1 + ... + a1X + a0。

系数a0,...,ad是整数,并且ad> 0。


F(t)= 0。


满足上述两个条件的多项式中的次数d是最小的。


F(X)是原始的。也就是说,系数a0,...,ad没有大于1的公约数。


例如,整数上的最小多项式为F(X)= X4 - 10X2 + 1。验证F(t)= 0如下(α=√3,β=√2)


F(t)=(α+β)4 -10(α+β)2 + 1
 
=(α4+4α3β+6α2β2+4αβ3+β4)-10(α2+2αβ+β2)+ 1
 
= 9 +12αβ+ 36 +8αβ+ 1-10(3 +2αβ+ 2)+ 1
 
=(9 + 36 + 4-50 + 1)+(12 + 8-20)αβ
 
= 0

验证F(t)的程度实际上最小是更困难的。幸运的是,在这个问题给出的条件下,即a和b是不同的素数,m和n大于1,最小多项式的次数总是mn。此外,它总是monic。也就是说,其最高阶项(ad)的系数为1。

输入


输入由多个数据集组成,每个数据集的格式如下。

a m b n

该线表示m√a+n√b。 最后一个数据集后面是由四个零组成的单行。 单行中的数字由单个空格分隔。

每个数据集满足以下条件。

1.m√a+n√b≤4。


2.mn≤20。


答案a0,...,ad的系数在(-231 + 1)和(231-1)之间,包括这两个系数。

输出


对于每个数据集,以以下格式输出其最小多项式在整数F(X)= adXd + ad-1Xd-1 + ... + a1X + a0上的系数。

ad ad-1 ... a1 a0

非负整数必须打印无符号(+或 - )。 单行中的数字必须由单个空格分隔,并且输出中不会显示其他字符或额外空格


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值