所以根据定义证明f(x)=x/(1+x^2)在定义域内为增函数。
设-1<x1<x2<1
f(x1)-f(x2)=x1/(1+x1^2)-x2/(1+x2^2)=[ (x1-x2) (1-x1x2) ] / [ (1+x1^2) (1+x2^2) ]
因为-1<x1<x2<1,所以1+x1^2>0,1+x2^2>0,所以-1<x1x2<1,所以1-x1x2>0,x1-x2<0,所以f(x1)-f(x2)<0.所以f(x)在定义域内为增函数。
-1<t-1<1,-1<t<1,得0<t<1
f(t-1)+f(t)=(t-1)/(1+(t-1)^2)+t/(1+t^2)<0,通分知分子大于0,则分子小于0,即:-3t^2+3t-1<0,3t^2-3t+1>0,又因为deta<0,所以t取全体定义域内的数。即0<t<1
得0<t<1。
是化简错了,是相加不是相减。呵呵。我再算一下呀。
f(t-1)+f(t)=(t-1)/(1+(t-1)^2)+t/(1+t^2)<0
分子小于0,即:2t^3-3t^2+3t-1<0
2t^3-2t^2+2t-t^2+t-1<0
2t(t^2-t+1)-(t^2-t+1)<0
(t^2-t+1)(2t-1)<0,
因为t^2-t+1>0恒成立,所以2t-1<0,t<1/2,
又定义域为0<t<1,
所以0<t<1/2
用的是linux系统,所以聊天不方便,输入法也不方便。
前段时间从windows移植了一个程序到linux上,不知为何性能奇差。查了下原因,发现是由于一个函数ZeroSleep特别耗时,这个函数的代码很简单,如下:void ZeroSleep()
{
Sleep(0)
}
Sleep(0)作用是用来释放cpu的时间片,避免忙等待。于是想当然的在linux上实现为:
void ZeroSleep()
{
msleep(0)
}
但其实msleep API的源代码如下:
void msleep(unsigned int msecs)
{
unsigned long timeout = msecs_to_jiffies(msecs) + 1
while (timeout)
timeout = schedule_timeout_uninterruptible(timeout)
}
如此一来,即使参数为0,也至少要睡眠一个jiffies单位的时间,因此导致严重的性能问题。
该问题的解决方法是:
既然ZeroSleep的目的是释放cpu资源,那么就可以通过调用schedule()函数替换msleep 。而且实际上msleep本身也是通过调用schedule_timeout_uninterruptible实现的,所以这个做法也是合理的。
http://tassardge.blog.163.com/blog/static/17230170820100275580656/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)