Re: Is it doable in Mathematica? How?
- To: mathgroup at smc.vnet.net
- Subject: [mg39767] Re: Is it doable in Mathematica? How?
- From: dan_kefford at hotmail.com (Dan Kefford)
- Date: Thu, 6 Mar 2003 02:36:42 -0500 (EST)
- References: <b3v7ef$k96$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Dear all... I am by no means a Mathematica expert, and it's been quite a while since I last used it on a regular basis. That said, I couldn't resist this little puzzle. Anyway, I thought maybe the original poster was looking for a generalized solution-- to be able to print a truth table for _any arbitrary logical expression_. So, here goes: ListOfVariables[expr_] := Union[Cases[expr, _Symbol?(! NumericQ[#] &), Infinity]] BooleanTuples[variableList_] := Map[Thread[variableList -> #] &, Distribute[Table[{True, False}, {Length[variableList]}], List]] TruthTable[expr_] := Module[ {variableList, transformationRules}, variableList = ListOfVariables[expr] ; transformationRules = BooleanTuples[variableList] ; Print[ GridBox[ {Append[variableList, expr // TraditionalForm]}~Join~ (Append[variableList, expr] /. transformationRules) , RowLines -> {True, False}, ColumnLines -> True ] // DisplayForm ]; ] I haven't tested this extensively, but it appears to work quite well. I know the ListOfVariables function has some vulnerabilities, from some Googling that I did for this, but in most situations it should do. Ultimately, too, the truth table should display intermediate results; I'll have to figure out how to do that. Anyway... my $0.02 to this interesting problem. dan kefford "Konrad Den Ende" <chamsterkonrad at bigfoot.com> wrote in message news:<b3v7ef$k96$1 at smc.vnet.net>... > I'd like to create a truth table for, say, A, B and C, as > well as two different expression, say, A&&B&&C and > (A||B) -> C. How do i go about that? > > I have tried Table, but since True/False are not allowed > there i got stuck. The help in Mathematica was of little > help in this case. Any hints or suggestions? > > -- > > Vänligen > Konrad > --------------------------------------------------- > phone #1: (+46/0) 708 - 70 73 92 > phone #2: (+46/0) 704 - 79 96 95 > url: http://konrads.webbsida.com > e-mail: chamsterkonrad at bigfoot.com > ----------------------------------- > > Sleep - thing used by ineffective people > as a substitute for coffee > > Ambition - a poor excuse for not having > enough sence to be lazy > ---------------------------------------------------