If statement Mathematica If then vs.暗示
我是Mathematica(v8)的新手,正在用它来编程命题逻辑 我想知道If statement Mathematica If then vs.暗示,if-statement,wolfram-mathematica,boolean-logic,If Statement,Wolfram Mathematica,Boolean Logic,我是Mathematica(v8)的新手,正在用它来编程命题逻辑 我想知道If和隐含的运算符之间有什么区别。例如, 如果[p,q]和都暗示[p,q]返回q的p=True(如预期) 但当我试图获得令人满意的实例时,我得到了以下结果: SatisfiabilityInstances[If[p, q], {p, q}] (* {{True, True}} *) 除非我要求更多的例子: SatisfiabilityInstances[If[p, q], {p, q}, All] 可满足性实例
If
和隐含的运算符之间有什么区别。例如,
如果[p,q]
和都暗示[p,q]
返回q
的p=True
(如预期)
但当我试图获得令人满意的实例时,我得到了以下结果:
SatisfiabilityInstances[If[p, q], {p, q}]
(*
{{True, True}}
*)
除非我要求更多的例子:
SatisfiabilityInstances[If[p, q], {p, q}, All]
可满足性实例::boolv:“如果[p,q]不是{False,True}处的布尔值
然而:
SatisfiabilityInstances[Implies[p, q], {p, q}, All]
返回以下项中的预期值:
(* {{True, True}, {False, True}, {False, False}} *)
是什么导致了输出中的这种差异?这是它所说的--
如果不是布尔值,即它不仅返回true或false。尝试如果[false,true]
则不会看到结果。如果[a,b,c,d]
可以返回任何b,c和d,而不仅仅是布尔值,例如如果[true,2]
返回2。因此,如果
用于分支(甚至是函数),而意味着
是正常的布尔函数
另外,意味着
也可以返回2
。所以区别在于如果[False,True]
不返回任何内容,那么满足性实例
函数无法找到真区域
p.p.S.更准确地说,如果if[]
的第一个参数是False
,那么它将返回它的第三个参数。当它不存在时,它将不返回任何内容。您可以尝试:
SatisfiabilityInstances[If[p, q, Not[q]], {p, q}, All]
你能告诉我一个好的教程吗?我读过Mathematica文档,但不知道可以给出“如果”四个值(如果其他值只有三个)。“如果[a,b,c,d]”返回“d”,但没有指定任何真值,这是为什么@Dims@QuietThud
If[条件、真子句、假子句、非真或假子句]
Thank you@belisarius.=)对于数学编程学习源代码,我非常感谢您的推荐——文档作为参考效果更好。@quiethud