东大OJ-一元三次方程解的个数
1043: Fixed Point
时间限制: 5 Sec 内存限制: 128 MB
提交: 26 解决: 5
[提交][状态][讨论版]
题目描述
In
mathematics, a
fixed point (sometimes shortened to
fixpoint, also known as an
invariant point) of a
function is a point that is mapped to itself by the function. That is to say,
x is a fixed point of the function
f
if and only if
f(x)
= x. For example, if
f is defined on the
real numbers by f(x)=x*x-3*x+4.,then
2 is a fixed point of f, because
f(2) = 2.
Not all functions have fixed points: for example, if
f is a function defined on the real numbers as
f(x)
= x + 1, then it has no fixed points, since
x is never equal to
x + 1 for any real number. In graphical terms, a fixed point means the point (x,
f(x))
is on the line y =
x, or in other words the
graph of
f
has a point in common with that line. The example
f(x)
= x + 1 is a case where the graph and the line are a pair of
parallel
lines.
------
http://en.wikipedia.org/wiki/Fixed_point_%28mathematics%29
Our problem is,for a defined on real number function:
f(x)=a*x*x*x+b*x*x+c*x+d,how many different fixed points does it have?
输入
There are multiple test cases.For each test cases, there are four
integers a, b, c and
d in a single line.
You can assume that
-213<=a<=213,
-213<=b<=213,
-213<=c<=213,
-213<=d<=213,and
the number of the result is countable.
输出
For each test case, output the answer
in a single line.
样例输入
3 111 793 -3456 5 -135 811 0 -1 9 10 -81
样例输出
3 3 3
#include<iostream>
#include<math.h>
using namespace std;
int main(){
freopen("in.txt", "r", stdin);
double a3, b3, c3, d3;
double a2, b2, c2;
while (cin >> a3 >> b3 >> c3 >> d3){
c3--;
a2 = 3 * a3; b2 = 2 * b3; c2 = c3;
if (a3 == 0){
if (b3 == 0)//一次方程
{
if (c3 == 0){//只剩常数
cout << 0 << endl;
}
else cout << 1 << endl;
}
else{//二次方程
double delta = c3*c3 - 4 * b3*d3;
if (delta == 0)cout << 1 << endl;
else if (delta>0)cout << 2 << endl;
else cout << 0 << endl;
}
}
else{//三次方程
double delta = b2*b2 - 4 * a2*c2;
if (delta <= 0)//单调递增
cout << 1 << endl;
else{
double x1 = (-b2 - sqrt(delta)) / (2 * a2);
double x2 = (-b2 + sqrt(delta)) / (2 * a2);
double y1 = a3*x1*x1*x1 + b3*x1*x1 + c3*x1 + d3;
double y2 = a3*x2*x2*x2 + b3*x2*x2 + c3*x2 + d3;
double see = y1*y2;
if (see == 0)cout << 2 << endl;
else if (see > 0)cout << 1 << endl;
else cout << 3 << endl;
}
}
}
return 0;
}
东大OJ-一元三次方程解的个数的更多相关文章
- Vijos P1116 一元三次方程求解【多解,暴力,二分】
一元三次方程求解 描述 有形如:ax^3+bx^2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之 ...
- 【CodeVS】p1038 一元三次方程求解
题目描述 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100 ...
- 一元三次方程 (codevs 1038)题解
[问题描述] 有形如:ax3+bx2+cx+d=0这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- p1144一元三次方程求解
题目描述: 有形如:f(x)=ax^3+bx^2+cx+d=0这样的一元三次方程,给出该方程中各项的系数a,b,c,d,它们均为实数,并约定该方程一定存在着3个不同的实数解,解的范围在-100至100 ...
- 1038 一元三次方程求解 2001年NOIP全国联赛提高组
题目描述 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100 ...
- [NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)
[NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约 ...
- [NOIP2001] 提高组 洛谷P1024 一元三次方程求解
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- luogu【P1024 一元三次方程求解】题解
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
- NOIP2001 一元三次方程求解[导数+牛顿迭代法]
题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...
随机推荐
- SpringMvc-Httl-shiro的整合
来到新的公司一个月,以前实习公司的用的是srping+hibernate+struts2,而在这里不在用的这些了,而是用的springMVC和jdbc模板来操作数据了,所以又用了一段时间去慢慢融入这个 ...
- flock — 轻便的咨询文件锁定
bool flock ( resource $handle , int $operation [, int &$wouldblock ] ) handle 文件系统指针,是典型地由 ...
- Centos 内存占满 释放内存
free -m 查看内存使用情况 top,然后按下shift+m,按内存占用百分比排序 centos 为了提高效率,把部分使用过的文件缓存到了内存里.如果不需要这样的文件性能,那就可以释放. 如下两个 ...
- .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]
今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...
- TRIM函数
Trim() 删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格.
- BZOJ 2818: Gcd
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4443 Solved: 1960[Submit][Status][Discuss ...
- Javascript 代码格式化(JsFormat)
JsFormat 在GitHub 上的地址: https://github.com/jdc0589/JsFormat 这是一个sublime text 2 的插件. 安装: 先安装 sublime p ...
- JS常用自定义方法
1,JS生成随机数方法 getRandom(100),表示生成0-100的数 function getRandom(n){ return Math.floor(Math.random()*n+1) } ...
- .net AES加密解密
using System; using System.Collections.Generic; using System.Text; using System.Secur ...
- .net core注入时作用域的说明
Transient:每次获取实例都是新实例. Scoped:每次web请求都是新实例,在同一web请求是相同的实例. Singleton:实例只创建一次,以后的每次获取都是这一实例.