Java实现 LeetCode 808 分汤 (暴力模拟)
生活随笔
收集整理的這篇文章主要介紹了
Java实现 LeetCode 808 分汤 (暴力模拟)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
808. 分湯
有 A 和 B 兩種類型的湯。一開始每種類型的湯有 N 毫升。有四種分配操作:
提供 100ml 的湯A 和 0ml 的湯B。
提供 75ml 的湯A 和 25ml 的湯B。
提供 50ml 的湯A 和 50ml 的湯B。
提供 25ml 的湯A 和 75ml 的湯B。
當我們把湯分配給某人之后,湯就沒有了。每個回合,我們將從四種概率同為0.25的操作中進行分配選擇。如果湯的剩余量不足以完成某次操作,我們將盡可能分配。當兩種類型的湯都分配完時,停止操作。
注意不存在先分配100 ml湯B的操作。
需要返回的值: 湯A先分配完的概率 + 湯A和湯B同時分配完的概率 / 2。
示例:
輸入: N = 50
輸出: 0.625
解釋:
如果我們選擇前兩個操作,A將首先變為空。對于第三個操作,A和B會同時變為空。對于第四個操作,B將首先變為空。
所以A變為空的總概率加上A和B同時變為空的概率的一半是 0.25 *(1 + 1 + 0.5 + 0)= 0.625。
注釋:
0 <= N <= 10^9。
返回值在 10^-6 的范圍將被認為是正確的。
總結
以上是生活随笔為你收集整理的Java实现 LeetCode 808 分汤 (暴力模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NFT 推荐|Funguys 王国作品集
- 下一篇: 查看支付宝所有交易记录方法