zoukankan      html  css  js  c++  java
  • 2019牛客暑期多校训练营(第七场)D Number——实系数多项式因式分解定理

    前置知识

    代数基本定理

    定理:每个次数 ≥ 1 复系数多项式在复数域中至少有一个跟。

    由此推出,n次复系数多项式方程在复数域内有且只有n个根(重根按重数计算)。(只要不断把多项式除以(x-xa),即可从有一个根推出有n个根)

    实系数多项式因式分解定理

    定理:每个次数 ≥ 1 实系数多项式在实数域上都可以唯一的分解成一次因式和二次不可约多项式的乘积。

    证:

    对 f(x) 的次数用数学归纳法。

    n=1时,一次多项式显然不可约,定理成立;

    假设对次数 ≤ n 时定理成立,

    设 f(x) 是 n 次多项式,由代数基本定理,f(x) 有一复根 α.

    如果 α 是实数,那么 $f(x) = (x - alpha )f_1(x)$,其中 $f_1(x)$ 为 n-1 次实系数多项式;

    如果 α 不是实数,那么 $ar alpha$ 也是 f(x) 的根,于是

    $f(x) = (x - alpha )(x - ar alpha ) f_2(x) \= [x^2 - (alpha  + ar alpha) x + a ar alpha]f_2(x)$,其中 $x^2 - (alpha  + ar alpha) x + a ar alpha$ 是实系数二次不可约多项式,从而 $f_2(x)$ 是 n-2 次实系数多项式。

    题目

    给出一个多项式,判断在实数范围内是否可分解。

    分析:

    由上面定理可知,在实数范围内任一不可约多项式只能是一次或二次的。

    除此之外,显然有奇数次实系数多项式至少有一个实根。

    (测试中含有常数

    #include<bits/stdc++.h>
    using namespace std;
    
    int n, a[25];
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%d", &n);
            for(int i = n; i >= 0;i--)  scanf("%d", &a[i]);
            if(n <= 1 || (n == 2 && a[1] * a[1] - 4 * a[2] * a[0] < 0))  printf("Yes
    ");
            else  printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    七十年前往事的回顾:偷窥造酒作坊的裸体男人
    Python画图工具matplotlib的安装
    版本号控制-搭建gitserver
    HDU 4405 概率期望DP
    下载jdk文件后缀是.gz而不是.tar.gz怎么办
    《小亚和小信》小强,你就长点心吧!
    7.11 小结
    动态规划 LCS,LIS
    每秒更新时间 v-text的应用 (解决闪现{}问题)
    vue 引入组件
  • 原文地址:https://www.cnblogs.com/lfri/p/11326606.html
Copyright © 2011-2022 走看看