Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 请告诉我如何重复并列出Mathematica_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 请告诉我如何重复并列出Mathematica

Wolfram mathematica 请告诉我如何重复并列出Mathematica,wolfram-mathematica,Wolfram Mathematica,我如何循环这个 p = Table[RandomChoice[{Heads, Tails}, 2 i + 1], {i, 10}]; v = Count[#, Heads] & /@ p; c = Count[#, Tails] & /@ p; f = Abs[v - c]; g = Take[f, LengthWhile[f, # != 3 &] + 1] 谢谢 编辑 在这个掷硬币游戏中,规则如下: 一出戏由重复的动作组成 掷一枚公平的硬币直到 数量之差 头被抛,尾

我如何循环这个

p = Table[RandomChoice[{Heads, Tails}, 2 i + 1], {i, 10}];
v = Count[#, Heads] & /@ p;
c = Count[#, Tails] & /@ p;
f = Abs[v - c];
g = Take[f, LengthWhile[f, # != 3 &] + 1]
谢谢

编辑

在这个掷硬币游戏中,规则如下:

  • 一出戏由重复的动作组成 掷一枚公平的硬币直到 数量之差 头被抛,尾巴的数量 是三
  • 每次硬币用完,你必须付1美元 翻页,您不能在翻页期间退出 游戏的游戏
  • 你在每个月底收到8美元 游戏规则

  • 你应该玩这个游戏吗
  • 你希望赢多少,或者赢多少 500场比赛后输了
您可以使用电子表格模拟和/或概率推理来回答这些问题


本课程使用Excel,我正在尝试学习Mathematica。

不确定这是否是实现您所需的最佳方法,但这应该可以让您开始学习。首先,请注意,我将名称head和Tails改为小写(Heads是一个内置符号…)——小写变量名是避免此类问题的最佳方法

Remove[p, v, c, fun, f, g, head, tail];
fun[n_] :=
 Do[
  Block[
   {p, v, c, f, g},
   p = Table[RandomChoice[{head, tail}, 2 i + 1], {i, 10}];
   v = Count[#, head] & /@ p;
   c = Count[#, tail] & /@ p;
   f = Abs[v - c];
   g = Print[Take[f, LengthWhile[f, # != 3 &] + 1]]
   ],
  {n}]
只需输入要运行循环的次数。。。乐趣[5]带来了:

{1,1,1,1,5,3}

{3}

{1,1,5,1,5,1,3}

{3}

{1,5,3}
注意:因为您可能希望对输出执行某些操作,所以使用表[]可能比使用[]更好。这将返回一个列表列表

Remove[p, v, c, fun, f, g, head, tail];
fun[n_] :=
 Table[
  Block[
   {p, v, c, f, g},
   p = Table[RandomChoice[{head, tail}, 2 i + 1], {i, 10}];
   v = Count[#, head] & /@ p;
   c = Count[#, tail] & /@ p;
   f = Abs[v - c];
   g = Take[f, LengthWhile[f, # != 3 &] + 1]
   ],
  {n}]

没什么了不起的

不确定这是否是实现你想要的最好方式,但这应该让你开始。首先,请注意,我将名称head和Tails改为小写(Heads是一个内置符号…)——小写变量名是避免此类问题的最佳方法

Remove[p, v, c, fun, f, g, head, tail];
fun[n_] :=
 Do[
  Block[
   {p, v, c, f, g},
   p = Table[RandomChoice[{head, tail}, 2 i + 1], {i, 10}];
   v = Count[#, head] & /@ p;
   c = Count[#, tail] & /@ p;
   f = Abs[v - c];
   g = Print[Take[f, LengthWhile[f, # != 3 &] + 1]]
   ],
  {n}]
只需输入要运行循环的次数。。。乐趣[5]带来了:

{1,1,1,1,5,3}

{3}

{1,1,5,1,5,1,3}

{3}

{1,5,3}
注意:因为您可能希望对输出执行某些操作,所以使用表[]可能比使用[]更好。这将返回一个列表列表

Remove[p, v, c, fun, f, g, head, tail];
fun[n_] :=
 Table[
  Block[
   {p, v, c, f, g},
   p = Table[RandomChoice[{head, tail}, 2 i + 1], {i, 10}];
   v = Count[#, head] & /@ p;
   c = Count[#, tail] & /@ p;
   f = Abs[v - c];
   g = Take[f, LengthWhile[f, # != 3 &] + 1]
   ],
  {n}]

没什么了不起的

稍微数学化一点。没有定义变量

g[n_] := Table[(Abs /@ Total /@ 
             Array[RandomChoice[{-1, 1}, (2 # + 1)] &, 10]) /.
                                        {x___, 3, ___} :> {x, 3}, 
          {n}]  
请记入@Mr.Wizard


有点数学化。没有定义变量

g[n_] := Table[(Abs /@ Total /@ 
             Array[RandomChoice[{-1, 1}, (2 # + 1)] &, 10]) /.
                                        {x___, 3, ___} :> {x, 3}, 
          {n}]  
请记入@Mr.Wizard


我不喜欢抱怨RTFM等,但循环是非常基本的。如果我在文档中心的搜索框中键入“loop”,则前几次点击中的一次会包含指向“guide/loopingconstructures”页面的链接,这会包含指向教程“tutorial/LoopsAndControlStructures”的链接。你读过这些吗?

我不喜欢抱怨RTFM等,但循环是非常基本的。如果我在文档中心的搜索框中键入“loop”,则前几次点击中的一次会包含指向“guide/loopingconstructures”页面的链接,这会包含指向教程“tutorial/LoopsAndControlStructures”的链接。你读过这些吗?

< P>如果我理解硬币翻转游戏的规则,如果你必须使用蒙特卡洛方法,考虑这个:

count = 
  Table[
    i = x = 0;
    While[Abs[x] < 3, x += RandomChoice[{1, -1}]; i++];
    i,
    {15000}
  ];
虽然你赢的是$8*15000=$120000,但这不是一个好游戏

如果需要计算每个圈数出现的次数,则:

Sort @ Tally @ count

如果我理解硬币翻转游戏的规则,如果你必须使用蒙特卡洛方法,考虑这个:

count = 
  Table[
    i = x = 0;
    While[Abs[x] < 3, x += RandomChoice[{1, -1}]; i++];
    i,
    {15000}
  ];
虽然你赢的是$8*15000=$120000,但这不是一个好游戏

如果需要计算每个圈数出现的次数,则:

Sort @ Tally @ count

在理论方面多一点

您的游戏是一个onR1

因此,获得3距离的翻转次数的期望值为32=9,这也是您的成本的期望值

由于你每场比赛的收入是8美元,你将以平均每场1美元的速度输掉比赛


请注意,这些数字与@Mr.Wizard的15000场比赛的
135108-120000=15108
结果一致。

在理论方面稍多一些

您的游戏是一个onR1

因此,获得3距离的翻转次数的期望值为32=9,这也是您的成本的期望值

由于你每场比赛的收入是8美元,你将以平均每场1美元的速度输掉比赛


请注意,这些数字与@Mr.Wizard对15000场游戏的
135108-120000=15108
结果一致。

你想用这个做什么?@Wizard-我想创建几个代表某场游戏的列表。每个“循环”代表不同的一轮。@Tom D-是的。只要我们把它拿出来足够远。也就是说,我可能需要超过10个。@Corshot,我想知道您将使用上面的代码生成什么样的统计数据,因为我认为您正在做的事情可能有一个解析解,而不是“蒙特卡罗”方法。@Corshot先生完全同意。我也在想同样的问题。它似乎在计算一些太复杂而没有用处的东西。你想用它来完成什么?@wizard-我想创建几个代表某个游戏的列表。每个“循环”代表不同的一轮。@Tom D-是的。只要我们把它拿出来足够远。也就是说,我可能需要超过10个。@Corshot,我想知道您将使用上面的代码生成什么样的统计数据,因为我认为您正在做的事情可能有一个解析解,而不是“蒙特卡罗”方法。@Corshot先生完全同意。我也在想同样的问题。这似乎是在计算一些太复杂而没有用处的东西。Mma文档一开始可能(说得更少)让人望而生畏。我觉得我们不应该阻止新手提出问题,而应该把问题指向正确的方向。如果你明白有些问题不值得回答,就评论一下,或者随它去。@belisarius我同意你的观点,我们应该鼓励新手提问。但是,只要稍加努力就可以在文档中找到的问题应提交给手册。您是否认为您作为对新手询问循环的回答是恰当的?我认为它既不是新手级别,也不是关于循环。为了理解你的答案,这个可怜的家伙必须读几章文件,w