首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wolfram-mathematica中使用位置时遇到问题

在wolfram-mathematica中使用位置时遇到问题
EN

Stack Overflow用户
提问于 2014-09-04 09:32:51
回答 1查看 78关注 0票数 0

我正在用mathematica编写一份关于寻找程序失败的概率的作业,制作一个带有结果的图和表,但是我在获取表的最后一个值时遇到了麻烦

代码语言:javascript
复制
Clear[bin1]
bin1[n_, p_, k_] := 
 Module[{prob = (1 - p)^n, i}, 
  Do[prob = (((n - i + 1)/i) (p/(1 - p))) prob, {i, k}]; prob]



distribution = 
  Table[bin1[50, #, k], {k, 0, 50}] & /@ Range[0, .9, .1];

这是概率计算器prob = Max[Take[distribution, {#}]] & /@ Range[1, 10],它取表格的第一个值(它是故障的百分比)

代码语言:javascript
复制
position = # & /@ Range[0, .9, .1](thats just for the third value)

max = Last[
  Last[Position[distribution, Take[prob {#}] & /@ Range[1, 10]]]]

这是第三个值,我遇到麻烦的地方是它应该是最大值,但prob{#}部分不起作用,我不知道为什么

最后一个表应该是:TableForm[{position, prob, max}]

EN

回答 1

Stack Overflow用户

发布于 2014-09-04 11:54:39

请参阅documentation for Module

Module[{x,y,…},expr]

指定符号x,y,…在expr中应被视为本地。

当您说bin1[n_, p_, k_] := Module[{prob = …}]时,那么prob只在Module内部定义,并且在外部没有值。

您可以通过使用它来了解它是如何工作的:

代码语言:javascript
复制
In[1]:= Module[{foo}, foo]                                                      

Out[1]= foo$185

Module重命名其作用域内的变量,使其具有无法在外部访问的唯一名称。

您可能需要另一个函数来计算prob,或者设置bin1[]来计算分布和概率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25656041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档