題目:
num[j] 表示 顏色為 j 的球的個數,題目要求 sum(num[j]^2) 0 < j <= m
b[i][j] 表示 i 球顏色為 j 的概率。不同球的顏色是互不影響的,所以直接相加就是 個數 ,所以
num[j] = sum(b[i][j]) = b[1][j] + b[2][j] .... + b[n][j] (0 < i <= n)
然後求 num[j]^2 。 如果直接 對上面的式子平方 顯然是錯誤的。
因為 num[j]^2 可以 看作 倆組 球 能組成幾對,如:
球編號: 1 2 3 4
球編號: 5 6 7 8 1號球能和5 6 7 8 組對即1×4,2號也一樣1×4,所以一共 4^2。如果換成概率就是1好球的概率乘上下面每個球的概率,加上2號乘......
而我們 num[j]^2 中 的 兩組球 是 相同的 兩組
球編號: 1 2 3 4
球編號: 1 2 3 4 上面的1和下面的2 組對時仍然是1的概率乘上2的概率,但是 1 和 1 組隊時,卻不是。 當我們確定球1為顏色j時,下面的球1已經確定了為顏色j,即其概率為1
因此 num[j]^2 = b[1][j]*1 + sum(b[1][j]*b[i][j]) (0在每個sum 中 都可以提出 公因式, 第乙個提出 b[1][j] 第二個提出b[2][j].....第n個提出b[n][j]
num[j]^2 = b[1][j]*1 + sum(b[i][j])*b[1][j] (0因此可以令 sump = sum(b[i][j]) (0則 num[j]^2 = b[1][j]*1 + (sump - b[1][j])*b[1][j] .....+b[n][j]*1 + (sump-b[n][j])*b[n][j]
ans = sum(num[j]^2) (0 < j <= m)
#include#include#include#includeusing namespace std;
#define ms(x,y) memset(x,y,sizeof(x))
void fr()
typedef long long ll;
int _map[1005][1005],dp[1005][1005];
int calc(int x,int y)
if(x-2>0)minn = min(minn,dp[x-2][y]+_map[x-1][y]*_map[x][y]);
return minn;
}int a[1005][1005];
double b[1005][1005];
int main()
for(j = 1; j <= m; j++)b[i][j] = a[i][j]*1.0/sum[i];
}for(j = 1; j <= m; j++)
printf("%.2lf\n",ans);
}return 0;
}
Hdu 5570 概率期望
有n個小球,他們的顏色可能是m種顏色中的一種。給出二維表s,第i個球顏色為第j種顏色的概率為s i j sum s i k 0 概率期望類的問題,問題的關鍵在於將x 2的貢獻轉化為顏色相同的小球的對數 注意 x,y y,x 算兩對,x,x 也算一對 問題轉化為求解n個小球中顏色相同的小球的對數的期望...
HDU 3853 期望概率DP
期望概率dp簡單題 從 1,1 點走到 r,c 點,每走一步的代價為2 給出每乙個點走相鄰位置的概率,共3中方向,不動 x,y x y p x y 0 右移 x y x y 1 p x y 1 左移 x y x 1 y p x y 2 問最後走到 r,c 的期望 dp i j 為從 i j 點走到 ...
概率論09 期望
描述量 描述隨機變數最完備的方法是寫出該隨機變數的概率分布。然而,正如我們在前面章節看到的,概率分布的表達往往都比較複雜,資訊量很大。這如同我們購置汽車的時候,一輛汽車的全面資料可以說是海量的,比如汽車尺寸,油箱大小等等。我們選擇一輛汽車時,往往只使用有限的幾個具有代表性的量來代表汽車的主要特徵,比...