Random Mathematica,增加2n+;1,不是,比如说3

Random Mathematica,增加2n+;1,不是,比如说3,random,wolfram-mathematica,Random,Wolfram Mathematica,这是我的 RandomChoice[{.5, .5} -> {Heads, Tails}, 3] 然后我写 RandomChoice[{.5, .5} -> {Heads, Tails}, 5] 如何以2n+1的增量增加此函数?您正在寻找这样的函数吗 For[i = 1, i < 5, i++, Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]]] 这也做了同样的事情: Do[Print[RandomChoic

这是我的

RandomChoice[{.5, .5} -> {Heads, Tails}, 3]
然后我写

RandomChoice[{.5, .5} -> {Heads, Tails}, 5]

如何以2n+1的增量增加此函数?

您正在寻找这样的函数吗

For[i = 1, i < 5, i++, Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]]]
这也做了同样的事情:

Do[Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]], {i, 4}]

我不知道是否有更优雅、更有效的方法,因为我是Mathematica的新手,但我相信如果有,一定会有人评论。

你在寻找这样的方法吗

For[i = 1, i < 5, i++, Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]]]
这也做了同样的事情:

Do[Print[RandomChoice[{.5, .5} -> {Heads, Tails}, 2i+1]], {i, 4}]

我不知道是否有更优雅/高效的方法来实现这一点,因为我是Mathematica的新手,但我相信如果有,一定会有人发表评论。

我将您的请求解释为表明您需要函数2n+1,增量为2。因此,这些值应该是:3,5,7,9,11…如果这是正确的解释,那么以下应该是有效的:

Table[RandomChoice[{heads, tails}, 2 n + 1], {n, 1, 10}]
对于{1,2,3,4,5,6,7,8,9,10}的域,f(n)=2n+1

您可以通过以下方式获得相同的结果:

Table[RandomChoice[{heads, tails}, n], {n, 3, 21, 2}]

这更清楚地表明,增量为2。然而,它不是相同的功能。目标与以前相同,但域现在与目标集相同:{3,5,7…21}

我将您的请求解释为表明您需要函数2n+1,增量为2。因此,这些值应该是:3,5,7,9,11…如果这是正确的解释,那么以下应该是有效的:

Table[RandomChoice[{heads, tails}, 2 n + 1], {n, 1, 10}]
对于{1,2,3,4,5,6,7,8,9,10}的域,f(n)=2n+1

您可以通过以下方式获得相同的结果:

Table[RandomChoice[{heads, tails}, n], {n, 3, 21, 2}]

这更清楚地表明,增量为2。然而,它不是相同的功能。目标与以前相同,但域现在与目标集相同:{3,5,7…21}

@Gabe您可能需要编辑标题。在本例中,输出集的大小(即基数)为2n+1,但增加了2。我不知道该建议什么,但也许你可以想出一个更好的标题。请允许我欢迎你来到StackOverflow,并提醒我们在这里通常会做的三件事:1)当你得到帮助时,试着也给予帮助,回答你专业领域的问题2)3)当你看到好的问答时,投票支持他们,因为系统的可信度是基于用户通过分享知识而获得的声誉。还记得接受更好地解决您的问题的答案,如果有的话,@Gabe您可能想编辑标题。在本例中,输出集的大小(即基数)为2n+1,但增加了2。我不知道该建议什么,但也许你可以想出一个更好的标题。请允许我欢迎你来到StackOverflow,并提醒我们在这里通常会做的三件事:1)当你得到帮助时,试着也给予帮助,回答你专业领域的问题2)3)当你看到好的问答时,投票支持他们,因为系统的可信度是基于用户通过分享知识而获得的声誉。还记得接受更好地解决您的问题的答案,如果有的话,@Alex您的代码似乎工作正常。您可以消除
{.5,.5}->
,因为
随机选择
默认情况下将分配相等的权重。通常,人们会试图避免在Mma中循环构造,但这更多的是编程风格的问题,而不是正确性或效率的问题。@David:谢谢你的澄清。@Alex在Mathematica中,迭代是最后一个资源,通常会带来巨大的性能损失。使用列表范围的操作更自然。@belisarius:谢谢你提供的信息,我会去读一读:)@Alex例如
Array[RandomChoice[{heads,tails},2#+1]&,10]
在不使用循环和变量的情况下也做同样的操作。@Alex你的代码似乎工作得很好。您可以消除
{.5,.5}->
,因为
随机选择
默认情况下将分配相等的权重。通常,人们会试图避免在Mma中循环构造,但这更多的是编程风格的问题,而不是正确性或效率的问题。@David:谢谢你的澄清。@Alex在Mathematica中,迭代是最后一个资源,通常会带来巨大的性能损失。使用列表范围的操作更自然。@belisarius:谢谢你提供的信息,我会去读一读:)@Alex例如
Array[RandomChoice[{heads,tails},2#+1]&,10]
在不使用循环和变量的情况下也会这样做。