Deceptive Dice

2023-11-20 21:50
文章标签 dice deceptive

本文主要是介绍Deceptive Dice,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计蒜客:https://nanti.jisuanke.com/t/43468

题目描述:

Recently your town has been infested by swindlers who convince unknowing tourists to play a simple dice game with them for money. The game works as follows: given is an n-sided die,whose sides have 1, 2, . . . , n pips, and a positive integer k. You then roll the die, and then have to make a choice. Option 1 is to stop rolling. Option 2 is to reroll the die, with the limitation that the die can only be rolled k times in total. Your score is the number of pips showing on your final roll.

Obviously the swindlers are better at this game than the tourists are. You, proud supporter of the Battle Against ProbabilisticCatastrophes, decide to fight this problem not by banning the swindlers but by arming the tourists with information.

You create pamphlets on which tourists can find the maximum expected score for many values of n and k. You are sure that the swindlers will soon stop their swindling if the tourists are better prepared than they are!

The layout of the flyers is done, and you have distribution channels set up. All that is left to do is to calculate the numbers to put on the pamphlet.

Given the number of sides of the die and the number of times you are allowed to roll, calculate the expected (that is, average) score when the game is played optimally.

思路:

一个筛子有1~n个点面,一个游客最多可以掷k次,最后的得分是最后一次掷得的结果。求游客得分的期望值。

首先这道题里游客是个聪明的人(类似博弈),如果继续下去的期望小于当前的掷得的结果,就停止游戏。

假设剩余n次机会的期望值为dp[n],有:

即剩余的n种可能,每次取i和dp[n-1]种最大的结果(这是游客可以决定的)。

举个例子:n=6,k=2,dp[1]=(1+6)*6/2/6=3.5

第一次如果掷得的结果为1~3就继续游戏,因为1~3<3.5;

如果掷得的结果为4~6就结束游戏,因为3.5<4~6.

代码:

#include<iostream>
#include<string.h>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<string>
#include<set>
#include<map>
using namespace std;
typedef pair<int,int> PII;
typedef long long LL;
const int N=110;
double dp[N];
int sum(int x,int y){return (x+y)*(y-x+1)/2;
}
int main(){int n,k;cin>>n>>k;double ans=0;dp[0]=0;for(int i=1;i<=k;++i){dp[i]=1.0*(1.0*int(dp[i-1])*dp[i-1]+1.0*sum(int(dp[i-1])+1,n))/(n*1.0);}printf("%.7lf",dp[k]);return 0;
}

这篇关于Deceptive Dice的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397673

相关文章

什么是 with dice coefficients(Dice系数)

记录一下 什么是 with dice coeffcients?(本帖子不是专业的,只是在审稿的时候遇见了 所以就顺手查找一下并记录下来)   Dice系数和mIoU是语义分割的评价指标。   With Dice coefficients(Dice系数)是一种用于评估两个集合相似度的统计量,它在生物信息学、文本分析和其他需要比较集合相似度的领域中非常有用。Dice系数是由Lee J. Burrow

CodeForces 378A Playing with Dice(水题)

题目链接: CodeForces 378A Playing with Dice 题目大意:两个人猜数1~6,给出a和b,然后随机丢一个色子,问说接近a的可能,相等的可能,以及接近b的可能。 解题思路:完完全全的签到题。 #include <stdio.h>#include <stdlib.h>#include <math.h>int main() {int

HDU 5012 Dice(西安网络赛F题)

HDU 5012 Dice 题目链接 思路:这题也是水水的,直接记忆化广搜一下即可 代码: #include <cstdio>#include <cstring>#include <queue>using namespace std;const int rot[4][6] = { {4, 3, 1, 2, 5, 6},{3, 4, 2, 1, 5, 6},{6, 5,

Dice损失函数

Dice损失函数(Dice Loss),也称为Dice系数损失或Sørensen-Dice系数损失,是一种用于衡量两个集合相似度的指标,广泛应用于图像分割任务中。它的目标是最大化分割结果与真实标签之间的相似度。Dice损失函数基于Dice系数,后者用于评估两个二值图像或二值掩码的重叠情况。以下是详细解释: Dice系数 Dice系数(Dice Coefficient)是衡量两个集合相似度的指标

整理Sigmoid~Dice常见激活函数,从原理到实现

本文首发于我的个人博客: 激活函数:https://fuhailin.github.io/activation-functions/ 并同步于我的公众号:赵大寳Note(ID:StateOfTheArt),回复关键词【激活函数】下载全部代码。 激活函数之性质 1. 非线性:即导数不是常数。保证多层网络不退化成单层线性网络。这也是激活函数的意义所在。 2. 可微性:保证了在优化中梯度的可计算性

基于R语言的DICE模型技术应用

随着温室气体排放量的增大和温室效应的增强,全球气候变化问题受到日益的关注。我国政府庄严承诺在2030和2060年分别达到“碳达峰”和“碳中和”,因此气候变化和碳排放已经成为科研人员重点关心的问题之一。气候变化问题不仅仅是科学的问题,同时也是经济问题。为了综合评估气候变化及其带来的经济影响,很多经济-气候的综合模型被开发出来;其中2018年诺贝尔经济学奖得主W.D.Nordhaus开发的DICE型是

uva 10759 throw dice

原题: n common cubic dice are thrown. What is the probability that the sum of all thrown dice is at least x? Input The input file contains several test cases. Each test case consists two integers n (

(期望DP)【题解】SP1026 FAVDICE - Favorite Dice

题目 一个n面的骰子,求期望掷几次能使得每一面都被掷到。 link 题解 一个期望DP的常用状态设计方法: dp[i]表示当前已选了 i i i 种点数,还需一直选到 n n n 种点数的丢骰子数的期望。 显然dp[n]=0,答案为dp[0] 现在考虑转移: 则每次丢骰子有两种状态。 和之前的点数一样,有 i n \frac{i}{n} ni​ 的概率出现。记为 X X

Polycarpus‘ Dice CF534C 泡利的骰子 详细 翻译

原题链接 位于CodeForceshttps://codeforces.com/problemset/problem/534/C 题目         泡利有n个骰子d1,d2,...dn。第i个骰子能显示的点数为1到di。泡利扔出所有的骰子并且点数总和为A。阿格里并不能看到每个骰子的点数,但她知道总和A与每个骰子的最大点数d1,d2,...dn。不过她认为这已经能让她得到以下结论:第i个骰子

lightoj 1064 - Throwing Dice

n common cubic dice are thrown. What is the probability that the sum of all thrown dice is at least x? Input Input starts with an integer T (≤ 200), denoting the number of test cases. Each test case