|
|
1
2
你的问题很可能是你似乎不知道 Expected Value . 您必须多次运行模拟,并且对于每个分数差,保持出现的频率,然后采用加权平均值获得预期值。 当然,考虑到这是工程欧拉问题,可能有一个数学公式可以很容易地使用。 |
|
|
2
2
是的,有一个正确的答案。老实说,蒙特卡洛可以在理论上接近于给定大数定律的期望值。但是,您不想在这里尝试。因为实际上每次运行simu时,结果都会略有不同,四舍五入到小数点后八位(我认为此设置确实剥夺了任何人使用蒙特卡洛的机会)。如果你幸运的话,你会有一个simu,它会在多次试验后给出答案,前提是你已经提交了所有以前的并且失败了。我认为,验证码是欧拉项目让你放弃任何暴力手段的第二种方式。 好吧,同意白痴的观点,你必须先算出“期望值”。这个问题的原则是,你必须找到一种方法来列举每一个可能的“基本”结果后50轮。每一个结果都有它自己的L-R,所以总结一下,你就会得到答案。不用说,暴力方法在大多数情况下都失败了,特别是在这种情况下。幸运的是,我们有动态编程(dp),这很快! 基本上,dp将每一轮的计算结果保存为状态,并在下一轮中使用它们。因此,它避免了反复重复相同的计算。这个问题的难点在于找到一种表示状态的方法,也就是说,您希望如何保存临时结果。如果您已经在dp中解决了问题290,那么您可以在那里获得一些关于如何理解问题和制定状态的提示。 事实上,这并不是大脑中最困难的部分。最困难的是你是否意识到两个玩家的记忆状态在数字上是不同的,但实质上是相等的。例如,L:12345 R:12345与L:23456 R:23456或甚至L:98765 R:98765。这是因为通话是随机的。这也是我写可能的“基本”结果的原因。也就是说,可以将一些状态总结为一个状态。只有这样,你的计划才能在合理的时间内完成。 |
|
|
3
0
我会运行你的模拟很多次,然后做一个加权平均
只提交一次运行作为答案是不太可能的。假设它是掷骰子的期望值。掷骰子,得分6,按预期值提交。 |