藍橋杯之古代賭局

2021-06-29 10:43:15 字數 1206 閱讀 4414

【程式設計題】(滿分23分)

俗話說:十賭九輸。因為大多數賭局的背後都藏有陰謀。不過也不盡然,有些賭局背後藏有的是:「陽謀」。

有一種賭局是這樣的:桌子上放六個匣子,編號是1至6。多位參與者(以下稱玩家)可以把任意數量的錢押在某個編號的匣子上。所有玩家都下注後,莊家同時擲出3個骰子(骰子上的數字都是1至6)。輸贏規則如下:

1. 若某乙個骰子上的數字與玩家所押注的匣子號相同,則玩家拿回自己的押注,莊家按他押注的數目賠付(即1比1的賠率)。

2. 若有兩個骰子上的數字與玩家所押注的匣子號相同,則玩家拿回自己的押注,莊家按他押注的數目的2倍賠付(即1比2的賠率)。

3. 若三個骰子上的數字都與玩家所押注的匣子號相同,則玩家拿回自己的押注,莊家按他押注的數目的6倍賠付(即1比6的賠率)。

4. 若玩家所押注匣子號與某個骰子示數乘積等於另外兩個骰子示數的乘積,則玩家拿回自己的押注,莊家也不賠付(流局)。

5. 若以上規則有同時滿足者,玩家可以選擇對自己最有利的規則。規則執行後,則莊家收穫所有匣子上剩餘的押注。

乍一看起來,好像規則對玩家有利,莊家吃虧。但經過大量實戰,會發現局面很難說,於是懷疑是否莊家做了手腳,莊家則十分爽快地說:可以由玩家提供骰子,甚至也可以由玩家來投擲骰子。

你的任務是:通過程式設計模擬該過程。模擬50萬次,假定只有1個玩家,他每次的押注都是1元錢,其押注的匣子號是隨機的。再假定莊家有足夠的資金用於賠付。最後計算出莊家的盈率(莊家盈利金額/押注總金額)。

【輸入、輸出格式要求】

程式無輸入,程式執行輸出莊家的盈率,四捨五入保留到小數後3位。

思路:直接列舉。

ac**:

/*古代賭局

* * */

public class t11

double ans = sum/500000;

system.out.printf("%.4f",ans);

"sum = "+sum);

} public static void f(int a1,int a2,int a3,int b)

if(a1 == b&&a2 == b||a1 == b&&a3 == b|| a2 == b&&a3 == b)

if(a1 == b || a2 == b || a3 == b)

if(!(b*a1 == a2*a3)&&!(b*a2 == a1*a3)&&!(b*a3 == a1*a2))

}}

藍橋杯之迷宮

請提交該整數,表示走出迷宮的玩家數目,不要填寫任何多餘的內容。思路 本來想的是類似求解迷宮問題的深搜,發現它無法遍歷每個點,還不如兩層迴圈來得快,判斷每個點,然後用深搜,每走一步標記陣列對應值改變為 1,超出邊界符合題意,移動到標記陣列值為 1 則表示兜圈子,直到所有點判斷結束。include us...

藍橋杯訓練之ACM

題目內容 現有長度為n 的字串,該字串只由 a c m 三種字元組成 可以只有其中一種或兩種字元,但絕對不能有其他字元 但是禁止在串中出現c 相鄰的情況,求一共有多少種滿足要求的不同的字串。例如 n 2 時,有aa,ac,am,ca,cm,ma,mc,mm 8 種情況。輸入描述 長度整數n n 40...

藍橋杯之字元統計

問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且不超過s的長度。輸出格式 一行,題目要求的字串。輸入樣例1 4bbaa...