Problem A: Advanced Mathematics

Problem A: Advanced Mathematics

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 28   Solved: 17
[ Submit][ Status][ Web Board]

Description

Alice, your goddess, is going out with Bob, her boyfriend, but her advanced mathematics homework stops her. She is very sad and turns to you for help.
Her homework are quite simple. A function   is given and you are asked to calculate its monotone intervals.

Input

Input file contains several test cases.
In each test case, there is one line containing four positive integers  a b c  and  d  (1<= a b c d <=1000) indicating the coefficients of the function.
Input file ends with an EOF.

Output

For each test case, print the monotone intervals of  f(x)  separated by a space. Output “(l, r)+” (without quotes) if interval (l, r) are monotone increasing, and “(l, r)-” for monotone decreasing intervals. All intervals should be sorted by left end increasing. “ -inf ” (without quotes) indicates negative infinity and “ +inf ” (without quotes) for positive infinity. All numbers should be rounded to  4  digits after decimal point. For more detailed output form, refer to the sample output.

Sample Input

1 4 3 1
1 3 3 2

Sample Output

(-inf, -2.2153)+ (-2.2153, -0.4514)- (-0.4514, +inf)+
(-inf, +inf)+

HINT

题意:求一个一元三次方程的单调区间和单调递增还是递减。
好吧。将其求导就知道极值点了,然后再判断左右的大小就知道是递增还是递减了,一个麻烦的数学水题。
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <queue>
#include <map>
#include <stack>
#include <list>
#include <vector>
using namespace std;
int a,b,c,d;
int main()
{
	while (~scanf("%d%d%d%d",&a,&b,&c,&d))
	{
		a=3*a;
		b=2*b;
		int x=b*b-4*a*c;
		if (x<0)
		{
			double s=a+b+c;
			if (s<0)
				printf("(-inf, +inf)-\n");
			else
				printf("(-inf, +inf)+\n");
			continue;
		}
		else
		{
			double s1=(0-b+sqrt(x))/(2.0*a);
			double s2=(0-b-sqrt(x))/(2.0*a);
			if (s1>s2)
			{
				double t=s1;
				s1=s2;
				s2=t;
			}
			if (x==0)
			{
				a/=3;
				b/=2;
				double k1=a*pow((s1-1.1),3)+b*pow((s1-1.1),2)+c*(s1-1.1);
				double k2=a*pow(s1,3)+b*pow(s1,2)+c*s1;
				double k3=a*pow((s1+1.1),3)+b*pow((s1+1.1),2)+c*(s1+1.1);
				if ((k2-k1)*(k3-k2)>=0)
				{
					if (k3-k2>0)
						printf("(-inf, +inf)+");
					else
						printf("(-inf, +inf)-");
				}
				else
				{
					if (k2-k1>0)
						printf("(-inf, %.4lf)+ ",s1);
					else
						printf("(-inf, %.4lf)- ",s1);
					if (k3-k2>0)
						printf("(%.4lf, +inf)+",s1);
					else 
						printf("(%.4lf, +inf)-",s1);
				}
				cout<<endl;
			}
			else
			{
				a/=3;
				b/=2;
				double k1=a*pow((s1-1),3)+b*pow((s1-1),2)+c*(s1-1);
				double k2=a*pow(s1,3)+b*pow(s1,2)+c*s1;
				double k3=a*pow(s2,3)+b*pow(s2,2)+c*s2;
				double k4=a*pow((s2+1),3)+b*pow((s2+1),2)+c*(s2+1);
				if (k2-k1>0)
					printf("(-inf, %.4lf)+ ",s1);
				else
					printf("(-inf, %.4lf)- ",s1);
				if (k3-k2>0)
					printf("(%.4lf, %.4lf)+ ",s1,s2);
				else
					printf("(%.4lf, %.4lf)- ",s1,s2);
				if (k4-k3>0)
					printf("(%.4lf, +inf)+\n",s2);
				else 
					printf("(%.4lf, +inf)-\n",s2);	
			}
		}
	} 
	return 0;
}



访问真八字排盘系统介绍: 1、八字排盘 八字排盘是将年月日时按照天干地支的形式进行排列,一个时间单位代表了一个柱。八字由年柱、月柱、日柱和时柱共四个柱组成,也被称为四柱八字。八字学中基于中国阴阳五行、天干地支与刑冲克害、以及民间盲派的神煞论等方式,进一步预测爱情顺遂、工作高低、姻缘好坏、财富高低、学业成就、身体健康等事的学问。 八字排盘由以下元素组合:年月日时四柱、大运干支、胎元 、流年干支、十神、地势、神煞等。生辰八字不只是把干支历计算出来,而还要遵守月令、节令的强弱,时辰的阴阳变化进行校正。排盘分析,就是根据出生者的性别、天干地支的阴阳五行关系、进一步推算出来的一套方法论,给预测者做人生吉凶的参考数据,在未来事业、财运、婚姻、家庭等问题时,能做出风险较低的决策。 八字排盘怎么看 八字排盘由年、月、日、时四柱组成,每柱包含一个天干和一个地支,共八个字。年柱代表出生的年份,月柱代表出生的月份,日柱代表出生的日期,时柱则代表出生的时辰。每个柱的干支组合都会对个人的命运产生影响。天干地支旁边标注的正财、偏财、偏印、正印、比肩、劫财、食神、伤官、正官、七杀等,称为十神。 2、八字排盘软件介绍 我们是腾讯云市场金牌合作伙伴,广州正规软件开发公司,开发的八字排盘系统数据最全面精准,我们八字排盘采用最精确的排盘程序,而且运用“真太阳时”,进行更精确的时间划分。大家都知道我们使用的北京时间,是统一规定的标准时间。而八字排盘需要相对于太阳方位的天文时间,即平太阳时。我们国家地大物博,北京时间19时,哈尔滨已经夜幕降临,而新疆却还是太阳高挂,这时哈尔滨的天文时间可能在20:00以后,而新疆的天文时间可能在16时以前。北京时间是东经120度经线的平太阳时,如果您出生地的经度与北京时间所处的经度差异较大,或者处于单数时间点的前后,比如6点差一刻,8点,10点15分等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值