問題 C 概率 百事世界盃之旅

2022-04-08 14:55:18 字數 1099 閱讀 7542

題目描述

「…在2023年6月之前購買的百事任何飲料的瓶蓋上都會有乙個百事球星的名字。只要湊齊所有百事球星的名字,就可以參加百事世界盃之旅的**活動,獲取球星揹包、隨身聽,更可以赴日韓**世界盃。還不趕快行動!…」

你關上電視,心想:假設有n個不同的球星名字,每個名字出現的概率相同,平均需要買幾瓶飲料才能湊齊所有的名字呢?

輸入輸入乙個整數n,2≤n≤33,表示不同球星名字的個數。

輸出輸出湊齊所有的名字平均需要購買的飲料瓶數。如果是乙個整數,則直接輸出,否則用下面樣例中的格式分別輸出整數部分和小數部分。分數必須是不可約的。先輸出整數部分,若有小數部分,用括號把不可約分式括起來。

樣例輸入 copy

2樣例輸出 copy3提示

如果輸入5,則輸出11(5/12)

下面是遞推過程:

公式為f(n , k) = f(n , k - 1) + n / k

設f(n , k) 為在n種不同的飲料中選取還剩下k個未選的,所需要的購買的平均飲料瓶數 , 根據全期望公式 , f(n , k) = (這一次沒選中新的概率) * f(n , k) + (這一次選中新的概率) * f(n , k - 1) + 1 (當n == k時 , f(n , n)表示乙個還沒選,這個時候隨便選乙個新的概率為1)

即f(n , k) = (n - k ) / n * f(n , k) + k / n * f(n , k - 1) + 1

然後進行這個公式的處理就行了

#include

#pragma gcc optimize(3 , "ofast" , "inline")

using namespace std;

typedef

long

long ll ;

const

int inf =

0x3f3f3f3f

;const

int n =

1e5+10;

intmain()

a *= n ;

if(a % b ==0)

cout << a / b << endl ;

else

return0;

}

百事世界盃之旅

數學期望模板題,不知道數學期望的點這裡 得到第乙個不同的名字需要1次,得到第二個不同的名字需要n n 1 次 因為只需與第乙個名字不同即可,概率是 n 1 n,需要n n 1 次,得到第三個不同名字需要n n 2 次,得到第n個不同名字需要n 1次,最後需要次數期望 1 n n 1 n n 2 n ...

百事公司新任董事長龍嘉德即將上任

1月16日電 最近,百事公司宣布董事會一致選舉百事公司首席執行官龍嘉德 ramon laguarta 接替現任董事長盧英德 indra nooyi 擔任公司董事會主席。該任命將從今年2月1日盧英德退休之時起生效。龍嘉德是22年的百事 藍血人 他擔任過百事公司總裁,負責制定公司的企業戰略,密切配合業務...

航母級app橫空出世 百事哈哈狂飆藍海

1 這樣的 航母 所期望滿足的需求並不僅限於商業性需求,而是以滿足人所有可以訴諸於外的需求為目的社交平台。百事哈哈以需求為本,避免了熟人社交網路拓展的瓶頸,避免了熟人網路向商業服務生活服務拓展 硬推銷 的尷尬。例如,朋友圈和微博中充斥著各種無的放矢的 鏈結。在人與人的興趣對接 交易達成的基礎上,不斷...