身为ACM队的一名学术人员,yybird正在研究一个和刷题有关的理论。他想要知道一类题目到底要刷多少次最为合适。
首先,yybird认为,对于同一类型的题目,每多刷一次,收获都会比上一次小。当次数达到一定程度的时,我们就没有再刷这类题目的必要了(因为收获太小了,得不偿失)。
以上描述有点抽象,我们可以将其数学化:假设某一类型的题目第一次刷时收获为a。那么该类型的题目每多刷一次,收获会变为上一次的x倍(0<x<1)。举个例子,若x=0.6,第一次刷时收获为a=100,那么第二次刷时的收获为100*0.6=60,第三次再刷这种类型的题目,收获会变成60*0.6=36,以此类推。因此该类题目在刷了3次后,得到的总收获值为100+60+36=196。
yybird用他强悍的高中数学功底计算了一番之后惊奇地发现,当不断地刷同种类型的题目时,所得的总收获值S1是有上限的,其计算过程如下:
由前文得刷前n次的收获值构成一个等比数列,首项为a,公比为x。
根据等比数列求和公式得:
因为0<x<1,故当n→∞时,xn→0,所以可得:
由上面的推导可以看出S1的上限值为。yybird还认为,当一类题目已经获得了S1上限值的百分之b后,该类题目就已经没有继续刷的必要了(因为再刷也不会有多少收获)。于是便可借此计算出该类题目最适合刷的次数(即:使总收获值大于等于S1×b%的最小的n)。
举个例子,设a=100,b=80,x=0.6,那么可以计算得:
所以在得到了200的收获值后,就没有继续刷的必要了,由前面的计算知,刷三次的收获值S1=100+60+36=196<200,但是刷四次的话S1=100+60+36+21.6=217.6>200。因此该类题目刷四次最为合适。
正当yybird要得意地公布他的研究成果时,做了大量重复试验的学弟曾小浪指出:实际上每次重复刷同类型题目的收获值并不完全是呈指数递减的,第n次刷该类题的收获值应该在原有的基础上乘以(n+1)/2。如果还是前面那个例子,那么前三次刷的收获值实际上应该分别为 (1+1)/2*100=100、(2+1)/2*60=90、(3+1)/2*36=72。小浪摸了摸下巴,进一步指出:该数列的前n项和S2同样会收敛于一个与x有关的数(即同S1一样有上限值)。
yybird听了之后智商顿时就捉鸡了,他想请你帮忙计算下在实际情况时(即曾小浪提出的计算方式下),最适合的刷题次数。
三个浮点数,a,b,x,各自的含义见题目描述。其中0<a<2.1×109,0<=b<=100,0<x<1。
最适合的刷题次数。