当前位置: 首页 > 知识库问答 >
问题:

R中的掷硬币游戏

羊舌源
2023-03-14

所以尝试做一个掷硬币游戏的模拟,如果你得到人头,你的钱就翻倍,如果你有故事,你的钱就翻倍。并且想看看如果你用x个钱开始投n个球后你会得到什么

然而,我不确定如何以一种干净的方式来解决这个问题,而不只是对n执行一个forloop。

有什么干净的方法可以做到这一点吗?

共有1个答案

郗丰
2023-03-14

可以使用sample创建乘以0.5乘以2的列表。

sample_products = sample(c(0.5, 2), 100, replace = TRUE)
> sample_products
  [1] 0.5 2.0 0.5 2.0 2.0 0.5 2.0 0.5 2.0 2.0 0.5 0.5 0.5 0.5 2.0 2.0 0.5 0.5
 [19] 2.0 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 0.5 2.0 2.0 2.0 2.0 2.0 2.0 0.5
 [37] 2.0 2.0 2.0 0.5 2.0 2.0 0.5 0.5 0.5 2.0 0.5 2.0 2.0 0.5 2.0 2.0 2.0 2.0
 [55] 0.5 2.0 0.5 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 2.0 0.5 0.5 2.0 0.5 0.5
 [73] 0.5 2.0 0.5 0.5 0.5 2.0 2.0 0.5 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 0.5
 [91] 2.0 0.5 0.5 0.5 0.5 0.5 0.5 0.5 2.0 0.5

并获得那些产品的累积效应:

cumulative_prod = prod(sample_products)

并包括启动资金:

 start_money = 1000
 new_money = cumulative_prod * start_money

请注意,对于较大的采样大小,cumulative_prod将向1收敛,这是一个公平的硬币(sample)。

 类似资料:
  • 我一直在edX上学习python编程,这是一门非常好的课程,目前为止我可以完全推荐。刚刚看了一场关于统计学的TED演讲,我觉得很棒,这是我在真实世界场景中学会的一种锻炼python技能的简单方法。这个家伙给出了一个关于不断地抛硬币并寻找两个重复序列的概率的例子,他解释说,你会认为这两个序列发生的概率与他声称的相同,事实上并非如此。简单地说,他声称Heads Tails Heads这个序列比Head

  • 我只能用randint(0,1),它的抛硬币。(50%的头,尾) 使用上面,我如何做骰子分布(1到6个均匀分布)。

  • 我正试图解决一个经典的动态规划硬币兑换问题。这是一个家庭作业问题,我不是在寻找完整的解决方案,只是想找几个指针看看我做错了什么。 输入: 金额我们想用硬币支付一些价值 集合表示面值(1c、5c、10c、25c、100c、200c)的可用硬币数量 输出: 需要换手支付的最低硬币数。 假设: 收银机操作员有无限的硬币供应,知道如何给最佳的变化。 到目前为止,我试图做的是: 我试图建立一个数组C,使得每

  • 我试图为一个游戏的掷骰子程序,其中用户输入一个下注金额和2个六面骰子滚动,如果7或11是滚动,他们赢了。如果掷2,3或12就输了,如果掷其他任何一个数字,它就显示该数字为一个点。它会继续掷骰子,直到掷7或该点为止,如果掷7就输了,否则就赢了。出于某种原因,在掷骰子时,他会掷骰子,然后再掷一次,看看他们是否赢了或输了。我不知道如何解决这个问题,任何帮助都不会附带

  • 我试图自己解决LeetCode问题322。硬币兑换: 您将获得一个整数数组,表示不同面额的硬币,以及一个整数金额,表示总金额。 返回您需要的最少数量的硬币,以弥补该金额。如果这些硬币的任何组合都无法弥补这一数额,则返回-1。 你可以假设每种硬币的数量是无限的。 我似乎有一个错误,无法找出它。 我用DFS解决,基本上是说当目标达到0时,只需将所有的聚集在一个数组中,并动态地保持尽可能短的结果。这是问

  • 只是在这里遇到了这个简单的算法,从相同的称重硬币列表中找到奇数硬币(重达重)。 我可以理解,如果我们一次拿3个硬币,那么最小称重次数只有两个。 我是怎么找到答案的? 我人工试了一下一次称4套硬币,一次称3套硬币,一次称两个硬币,一次称一个硬币。 当然,只有当我们一次拿3个硬币时,最少的步数(两步)才是可以达到的。 问题是,你怎么知道我们必须拿3个硬币? 我只是想知道如何解决这个难题,而不是做所有可