演算法提高 概率計算

2021-09-13 09:09:21 字數 674 閱讀 9016

問題描述

生成n個∈[a,b]的隨機整數,輸出它們的和為x的概率。

輸入格式

一行輸入四個整數依次為n,a,b,x,用空格分隔。

輸出格式

輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數

樣例輸入

2 1 3 4

樣例輸出

0.3333

資料規模和約定

對於50%的資料,n≤5.

對於100%的資料,n≤100,b≤100.

問題分析:首先算每個數的概率為1.0/(a-b+1),dp[i][j]表示i個數和為j的概率,動態規劃的思想,那麼dp[i][j]就可以想成是i-1個數和為j-k時,再加k的情況,那麼就是從a到b每個數遍歷,即a<=k<=b,dp[i][j]就是所有滿足j-k>0的情況概率之和,因為只有j-k>0時,才能得到和為j的情況,每種情況的概率相加,就是最終dp[i][j]的概率;

#include#include#includeusing namespace std;

double dp[110][10000]; //dp[i][j]表示i個數的和為j的時候的概率

int main()} }

printf("%.4lf\n",dp[n][x]);

} return 0;

}

藍橋 演算法提高 概率計算

演算法提高 概率計算 時間限制 1.0s 記憶體限制 256.0mb 問題描述 生成n個 a,b 的隨機整數,輸出它們的和為x的概率。輸入格式 一行輸入四個整數依次為n,a,b,x,用空格分隔。輸出格式 輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數 樣例輸入 2 1 3 4 樣例輸出 0...

藍橋杯演算法提高 概率計算(概率dp)

問題描述 生成n個 a,b 的隨機整數,輸出它們的和為x的概率。輸入格式 一行輸入四個整數依次為n,a,b,x,用空格分隔。輸出格式 輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數 樣例輸入 2 1 3 4 樣例輸出 0.3333 資料規模和約定 對於50 的資料,n 5.對於100 的資...

藍橋杯 ADV 123 演算法提高 概率計算

演算法提高 概率計算 時間限制 1.0s 記憶體限制 256.0mb 問題描述 生成n個 a,b 的隨機整數,輸出它們的和為x的概率。輸入格式 一行輸入四個整數依次為n,a,b,x,用空格分隔。輸出格式 輸出一行包含乙個小數字和為x的概率,小數點後保留四位小數 樣例輸入 2 1 3 4 樣例輸出 0...