P3802 小魔女帕琪
P3802 小魔女帕琪
題目背景
從前有一個聰明的小魔女帕琪,興趣是狩獵吸血鬼。
帕琪能熟練使用七種屬性(金、木、水、火、土、日、月)的魔法,除了能使用這麽多種屬性魔法外,她還能將兩種以上屬性組合,從而唱出強力的魔法。比如說為了加強攻擊力而將火和木組合,為了掩蓋弱點而將火和土組合等等,變化非常豐富。
題目描述
現在帕琪與強大的夜之女王,吸血鬼蕾咪相遇了,夜之女王蕾咪具有非常強大的生命力,普通的魔法難以造成效果,只有終極魔法:帕琪七重奏才能對蕾咪造成傷害。帕琪七重奏的觸發條件是:連續釋放的7個魔法中,如果魔法的屬性各不相同,就能觸發一次帕琪七重奏。
現在帕琪有7種屬性的能量晶體,分別為a1,a2,a3,a4,a5,a6,a7(均為自然數),每次釋放魔法時,會隨機消耗一個現有的能量晶體,然後釋放一個對應屬性的魔法。
現在帕琪想知道,她釋放出帕琪七重奏的期望次數是多少,可是她並不會算,於是找到了學OI的你
輸入輸出格式
輸入格式:
一行7個數字,a1,a2,a3,a4,a5,a6,a7
輸出格式:
一個四舍五入保留3位的浮點數
輸入輸出樣例
輸入樣例#1:
1 1 1 1 1 1 1
輸出樣例#1:
1.000
說明
樣例說明:
顯然一定會觸發一次帕琪七重奏
數據範圍:
對於30%的測試點,a1+a2+a3+a4+a5+a6+a7<=10
對於100%的測試點,a1+a2+a3+a4+a5+a6+a7<=10^9
by-szc
思路分析:期望入門題。
首先引入一個公式:
數學期望公式:
\begin{equation*}E\xi=\sum_{i=0}^n x_i p_i\end{equation*}
設:
\begin{equation*}p=\sum^n_{i=1}a_i\end{equation*}
對於每一位i,7個膜魔法都不相同的概率為:
\begin{equation*}P=7!\cdot a_1\div p\cdot a_2\div{(p-1)}\cdot a_3\div{(p-2)}\cdot a_4\div{(p-3)}\cdot a_5\div{(p-4)}\cdot a_6\div{(p-5)}\cdot a_7\div{(p-6)}\end{equation*}
由於n的範圍為1-6,n-6=0,所以原式可化簡為:
\begin{equation*}P=7!\cdot a_1\div p\cdot a_2\div{(p-1)}\cdot a_3\div{(p-2)}\cdot a_4\div{(p-3)}\cdot a_5\div{(p-4)}\cdot a_6\div{(p-5)}\cdot a_7\end{equation*}
由此可寫出代碼:
1 #include<cstdio> 2 using namespace std; 3 double a1,a2,a3,a4,a5,a6,a7,n; 4 int main() 5 { 6 scanf("%lf%lf%lf%lf%lf%lf%lf",&a1,&a2,&a3,&a4,&a5,&a6,&a7); 7 n=a1+a2+a3+a4+a5+a6+a7; 8 printf("%.3lf",5040*a1/n*a2/(n-1)*a3/(n-2)*a4/(n-3)*a5/(n-4)*a6/(n-5)*a7); 9 return 0; 10 }View Code
P3802 小魔女帕琪