Mar*_*gus 4 wolfram-mathematica wolframalpha
y = a x + b我想使用 Wolframalpha 来查找一条线穿过point [2,8]、 时a和的概率b由公平掷骰子确定。
这就是我想要的:
Count[Flatten[Table[a 2 + b, {a,6},{b,6}]],8]/
Length[Flatten[Table[a 2 + b, {a,6},{b,6}]]]
Run Code Online (Sandbox Code Playgroud)
,但我不喜欢重复。我不完全确定为什么以下不起作用:
Count[x, 8]/Length[x] /. x -> Flatten[Table[a 2 + b, {a, 6}, {b, 6}]]
Run Code Online (Sandbox Code Playgroud)
我可以解决这个问题以及发生了什么吗?
这里的评估顺序不是您想要的:
Count[x, 8]/Length[x] /. x -> Flatten[Table[a 2 + b, {a, 6}, {b, 6}]]
Run Code Online (Sandbox Code Playgroud)
的左侧/.在替换之前求值,因此变为:Indeterminate
您需要延迟评估。通常的方法是使用“纯函数”。请参阅功能 &和插槽编号:
Count[#, 8]/Length[#] & @ Flatten[Table[a 2 + b, {a, 6}, {b, 6}]]
Run Code Online (Sandbox Code Playgroud)
可以强制 ReplaceAll (缩写形式/.)工作,但它是非标准的:
Unevaluated[ Count[x, 8]/Length[x] ] /.
x -> Flatten[Table[a 2 + b, {a, 6}, {b, 6}]]
Run Code Online (Sandbox Code Playgroud)
Unevaluted这里可以防止左侧过早评估。
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |