Posted on 2010-08-17 14:49
Brian 閱讀(964)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
POJ
我覺得有必要把它翻譯一下,然后就會(huì)發(fā)現(xiàn)考得其實(shí)是數(shù)學(xué),你在google 翻譯上是得不到如下翻譯的:
Description
考慮下面的交流電路。我們將假定電路在穩(wěn)態(tài)。因此,節(jié)點(diǎn)1的電壓和節(jié)點(diǎn)2的電壓分別是v1 = VS coswt 和 v2 = VRcos (wt + q),其中Vs是電源電壓,w是頻率(弧度每秒),t是時(shí)間。VR是電阻R兩端電壓下降的幅度,q是它的相位。

你需要寫一個(gè)程序,以確定不同的w對(duì)應(yīng)的VR值。您將需要兩個(gè)電學(xué)定律來解決這個(gè)問題。第一
個(gè)是是歐姆定律,表述為V2 = iR,其中i是在電路順時(shí)針流向的電流大小。
第二個(gè)是i = C d/dt (v1-v2),i與電容器兩板上的電壓有關(guān)。"d/dt" 意為求關(guān)于t的求導(dǎo)。
Input
輸入包括一行或多行。第一行包括三個(gè)實(shí)數(shù)和一個(gè)非負(fù)整數(shù)。實(shí)數(shù)按順序是VS,R,C。
整數(shù)n是測(cè)試用例的個(gè)數(shù)。接下來的n行就是輸入,要求一行一個(gè)實(shí)數(shù),代表w的值。
Output
輸出n行的VR值,注意,結(jié)果精確到小數(shù)點(diǎn)后三位。
下面需要推導(dǎo)一下求VR的公式:
V2=iR=CR d/dt (VS*cos(wt)-VR*cos(wt+q))=VRcos(wt+q)
= CR w (sin(wt+q)-sin(wt))=VRcos(wt+q)
下面用到高中數(shù)學(xué)當(dāng)中的計(jì)算方法,分別令 t=0 和 wt+q=0 ,得到 CRw tan b = 1 和 VR=CRw VS sin b ,
然后利用三角函數(shù)中的萬能公式,求得 :VR = CRw VS / sqrt (1+ (CRw) ^ 2 ))
// C 編譯器:
#include <stdio.h>
#include <math.h>
int main()


{
int i=0,n;
double VR,VS,R,C,w;
scanf("%lf%lf%lf%d",&VS,&R,&C,&n);
for (; i<n; i++)

{
scanf("%lf",&w);
VR=C*R*w*VS / sqrt(1+C*C*R*R*w*w);
printf("%.3lf\n",VR);
}
return 0;
}
注意 , 用 double