Jump to content

The Logic behind solving Logic?

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
2 replies to this topic

#1
Pyro.699

Pyro.699

    Newbie

  • Members
  • Pip
  • 1 posts
Hello,

Ive reached a point in my program where i decided to come to the outside community to try and get a bit of advice or methodology behind the task i have at hand. Here is a basic setup of a given array:


operations = [

    [ ["a"], ["c"] ],

    [ ["b"], ["d"] ], 

    [ ["a","c"], ["a","e"], ["a","f"], ["c","e"], ["c","f"], ["e","f"] ], 

    [ ["f"], ["g"] ], 

    [ ["f"], ["g"] ], 

    [ ["b","d"], ["b","g"], ["b","h"], ["d","g"], ["d","h"], ["g","h"] ], 

    [ ["c"], ["e"], ["f"], ["i"] ], 

    [ ["d","g","h"], ["d","g","j"], ["d","h","j"], ["g","h","j"] ], 

    [ ["e","f"], ["e","i"], ["e","k"], ["e","l"], ["e","m"], ["f","i"], ["f","k"], ["f","l"], ["f","m"], ["i","k"], ["i","l"], ["i","m"], ["k","l"], ["k","m"], ["l","m"] ], 

    [ ["f"], ["g"], ["l"], ["m"], ["n"] ], 

    [ ["f"], ["g"], ["m"], ["n"], ["o"] ], 

    [ ["g","h"], ["g","j"], ["g","n"], ["g","o"], ["g","p"], ["h","j"], ["h","n"], ["h","o"], ["h","p"], ["j","n"], ["j","o"], ["j","p"], ["n","o"], ["n","p"], ["o","p"] ] 

]

The formula followed for this is that the operations[x] will contain all of the condition sets. operations[x][y] will be the set of conditions, each new entry in this set is treated as another ⊕ to the set. operations[x][y][z] will be sets of ^ conditions to be joined with the other operations[x][y] sets with ⊕. If that was a little confusing here is what the translation of the above would be.

  • (A) ⊕ ©
  • (B) ⊕ (D)
  • (A ^ C) ⊕ (A ^ E) ⊕ (A ^ F) ⊕ (C ^ E) ⊕ (C ^ F) ⊕ (E ^ F)
  • (F) ⊕ (G)
  • (F) ⊕ (G)
  • (B ^ D) ⊕ (B ^ G) ⊕ (B ^ H) ⊕ (D ^ G) ⊕ (D ^ H) ⊕ (G ^ H)]
  • © ⊕ (E) ⊕ (F) ⊕ (I)
  • (D ^ G ^ H) ⊕ (D ^ G ^ J) ⊕ (D ^ H ^ J) ⊕ (G ^ H ^ J)
  • (E ^ F) ⊕ (E ^ I) ⊕ (E ^ K) ⊕ (E ^ L) ⊕ (E ^ M) ⊕ (F ^ I) ⊕ (F ^ K) ⊕ (F ^ L) ⊕ (F ^ M) ⊕ (I ^ K) ⊕ (I ^ L) ⊕ (I ^ M) ⊕ (K ^ L) ⊕ (K ^ M) ⊕ (L ^ M)
  • (F) ⊕ (G) ⊕ (L) ⊕ (M) ⊕ (N)
  • (F) ⊕ (G) ⊕ (M) ⊕ (N) ⊕ (O)
  • (G ^ H) ⊕ (G ^ J) ⊕ (G ^ N) ⊕ (G ^ O) ⊕ (G ^ P) ⊕ (H ^ J) ⊕ (H ^ N) ⊕ (H ^ O) ⊕ (H ^ P) ⊕ (J ^ N) ⊕ (J ^ O) ⊕ (J ^ P) ⊕ (N ^ O) ⊕ (N ^ P) ⊕ (O ^ P)

For those of you who are unfamiliar with the symbols:


Given all of this logic you are able to deduce this information:

  • A
  • ! B
  • ! C
  • D
  • E v F
  • G v H
  • ! I
  • J
  • K
  • ! L
  • ! M
  • ! N
  • ! O
  • ! P

From the array above how would you go about getting the values (without brute-forcing, there are 65536 possibilities).

I have a few ideas, but i know if i follow them they will lead me no-wheres so any thing that you could offer would be greatly appreciated.

Thanks
~Cody Woolaver

#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
How about sharing your ideas, so we can help you determine which are of value and which are not.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
mrhbrandi

mrhbrandi

    Newbie

  • Members
  • PipPip
  • 17 posts
Hi,

Let us know the exact idea to help you further.