Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Algorithms
  4. Find an algorithm

Find an algorithm

Scheduled Pinned Locked Moved Algorithms
algorithmsdebuggingregexquestionlearning
37 Posts 14 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Not Active

    I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

    private void Test()
    {
    Logic(false, false, false, false, false, false, false);
    Logic(false, false, false, false, true, true, true);
    Logic(false, false, false, false, true, false, false);
    Logic(false, false, true, false, true, true, false);
    Logic(false, false, true, true, true, true, true);
    }

    private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
    {
    bool result = [What algorithm goes here];

    System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
    

    }


    I know the language. I've read a book. - _Madmatt

    G Offline
    G Offline
    grgran
    wrote on last edited by
    #13

    If it were me I'd ask a lot more questions of whoever gave you this. The first two inputs to Logic appear to have no effect on the result and (if that's true) should be removed. This leaves a four bit table mapping: false, false, false, false, false false, false, true, true, true false, false, true, false, false true, false, true, true, false true, true, true, true, true Which can also be looked at as a bit table d dl r rl Exp Dec 0 0 0 0 0 00 * 0 0 0 1 ? 01 0 0 1 0 0 02 * 0 0 1 1 1 03 * 0 1 0 0 ? 04 0 1 0 1 ? 05 0 1 1 0 ? 06 0 1 1 1 ? 07 1 0 0 0 ? 08 1 0 0 1 ? 09 1 0 1 0 ? 10 1 0 1 1 0 11 * 1 1 0 0 ? 12 1 1 0 1 ? 13 1 1 1 0 ? 14 1 1 1 1 1 15 * There doesn't appear to be an obvious pattern, but there are lots of unknowns. I'd be tempted to change Logic to remove the first two parameters and return a bool? (nullable). I'd then convert d, dl, r and rl into a single byte value and use a switch statement to return the known results, returning null for undefined results. If a pattern later emerges you can do something 'pretty' then.

    L 1 Reply Last reply
    0
    • G grgran

      If it were me I'd ask a lot more questions of whoever gave you this. The first two inputs to Logic appear to have no effect on the result and (if that's true) should be removed. This leaves a four bit table mapping: false, false, false, false, false false, false, true, true, true false, false, true, false, false true, false, true, true, false true, true, true, true, true Which can also be looked at as a bit table d dl r rl Exp Dec 0 0 0 0 0 00 * 0 0 0 1 ? 01 0 0 1 0 0 02 * 0 0 1 1 1 03 * 0 1 0 0 ? 04 0 1 0 1 ? 05 0 1 1 0 ? 06 0 1 1 1 ? 07 1 0 0 0 ? 08 1 0 0 1 ? 09 1 0 1 0 ? 10 1 0 1 1 0 11 * 1 1 0 0 ? 12 1 1 0 1 ? 13 1 1 1 0 ? 14 1 1 1 1 1 15 * There doesn't appear to be an obvious pattern, but there are lots of unknowns. I'd be tempted to change Logic to remove the first two parameters and return a bool? (nullable). I'd then convert d, dl, r and rl into a single byte value and use a switch statement to return the known results, returning null for undefined results. If a pattern later emerges you can do something 'pretty' then.

      L Offline
      L Offline
      Luc Pattyn
      wrote on last edited by
      #14

      why do conversions, why introduce decision statements, if all it takes is some simple boolean expression? would you also replace multiplications by loops containing an addition? :)

      Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

      Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

      G 1 Reply Last reply
      0
      • L Luc Pattyn

        IMO Karnaugh maps aren't very useful. They can't cope with medium or large problems (how many times have you drawn Karnaugh maps with 6 input variables?) and they aren't very useful at solving small problems, as you just don't need them. The one thing they do well is visualize how minterms can be formed, but once you saw the principle, you don't need a graphics tool any more. :)

        Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

        Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

        P Offline
        P Offline
        parth p
        wrote on last edited by
        #15

        Luc Pattyn wrote:

        Karnaugh maps aren't very useful

        That's why you have Quine–McCluskey algorithm. You can easily implement it in any language and it always works regardless of number of inputs.

        - Stop thinking in terms of limitations and start thinking in terms of possibilities -

        L 1 Reply Last reply
        0
        • L Luc Pattyn

          why do conversions, why introduce decision statements, if all it takes is some simple boolean expression? would you also replace multiplications by loops containing an addition? :)

          Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

          Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

          G Offline
          G Offline
          grgran
          wrote on last edited by
          #16

          Simple because with all the unknowns, 30 secs after the method is finished some "new" result will be expected. Boolean expression are fine when what you are trying to communicate is clear. In this case things don't appear to be 'clear'. Converting isn't necessary, it's just helpful. Cheers

          N 1 Reply Last reply
          0
          • P parth p

            Luc Pattyn wrote:

            Karnaugh maps aren't very useful

            That's why you have Quine–McCluskey algorithm. You can easily implement it in any language and it always works regardless of number of inputs.

            - Stop thinking in terms of limitations and start thinking in terms of possibilities -

            L Offline
            L Offline
            Luc Pattyn
            wrote on last edited by
            #17

            parth.p wrote:

            That's why you have Quine–McCluskey algorithm

            and more. Pichat's work was more interesting (seems absent on the web??). I did a lot of research on the subject, and came up with my own optimization and design language, even before Verilog and VHDL became popular. :)

            Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

            Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

            1 Reply Last reply
            0
            • N Not Active

              I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

              private void Test()
              {
              Logic(false, false, false, false, false, false, false);
              Logic(false, false, false, false, true, true, true);
              Logic(false, false, false, false, true, false, false);
              Logic(false, false, true, false, true, true, false);
              Logic(false, false, true, true, true, true, true);
              }

              private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
              {
              bool result = [What algorithm goes here];

              System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
              

              }


              I know the language. I've read a book. - _Madmatt

              F Offline
              F Offline
              frank33
              wrote on last edited by
              #18

              have you tried a Karnaugh map?

              Frank

              N 1 Reply Last reply
              0
              • G grgran

                Simple because with all the unknowns, 30 secs after the method is finished some "new" result will be expected. Boolean expression are fine when what you are trying to communicate is clear. In this case things don't appear to be 'clear'. Converting isn't necessary, it's just helpful. Cheers

                N Offline
                N Offline
                Not Active
                wrote on last edited by
                #19

                It seemed to be clear to everyone else


                I know the language. I've read a book. - _Madmatt

                G 1 Reply Last reply
                0
                • F frank33

                  have you tried a Karnaugh map?

                  Frank

                  N Offline
                  N Offline
                  Not Active
                  wrote on last edited by
                  #20

                  You mean like Member 4190501 suggested over 10 hours ago. If you also read the responses you would see the problem was solved long ago.


                  I know the language. I've read a book. - _Madmatt

                  1 Reply Last reply
                  0
                  • N Not Active

                    It seemed to be clear to everyone else


                    I know the language. I've read a book. - _Madmatt

                    G Offline
                    G Offline
                    grgran
                    wrote on last edited by
                    #21

                    Ok, wow ... ummmm, your welcome?

                    1 Reply Last reply
                    0
                    • N Not Active

                      I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

                      private void Test()
                      {
                      Logic(false, false, false, false, false, false, false);
                      Logic(false, false, false, false, true, true, true);
                      Logic(false, false, false, false, true, false, false);
                      Logic(false, false, true, false, true, true, false);
                      Logic(false, false, true, true, true, true, true);
                      }

                      private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
                      {
                      bool result = [What algorithm goes here];

                      System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
                      

                      }


                      I know the language. I've read a book. - _Madmatt

                      A Offline
                      A Offline
                      ashishpahlaz
                      wrote on last edited by
                      #22

                      result = ((f&&f1) || (d&&d1) || (r&&r1)) && (f||f1) && (d||d1) && (r||r1)

                      L 1 Reply Last reply
                      0
                      • A ashishpahlaz

                        result = ((f&&f1) || (d&&d1) || (r&&r1)) && (f||f1) && (d||d1) && (r||r1)

                        L Offline
                        L Offline
                        Luc Pattyn
                        wrote on last edited by
                        #23

                        incorrect, none of the test cases have (f||f1) true. :|

                        Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

                        Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

                        A 1 Reply Last reply
                        0
                        • L Luc Pattyn

                          incorrect, none of the test cases have (f||f1) true. :|

                          Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

                          Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

                          A Offline
                          A Offline
                          ashishpahlaz
                          wrote on last edited by
                          #24

                          result = ((f&&f1) || (d&&d1) || (r&r1)) && (f==f1) && (d==d1) && (r==r1);

                          1 Reply Last reply
                          0
                          • N Not Active

                            I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

                            private void Test()
                            {
                            Logic(false, false, false, false, false, false, false);
                            Logic(false, false, false, false, true, true, true);
                            Logic(false, false, false, false, true, false, false);
                            Logic(false, false, true, false, true, true, false);
                            Logic(false, false, true, true, true, true, true);
                            }

                            private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
                            {
                            bool result = [What algorithm goes here];

                            System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
                            

                            }


                            I know the language. I've read a book. - _Madmatt

                            T Offline
                            T Offline
                            Tadeusz Westawic
                            wrote on last edited by
                            #25

                            Is it simply the number of TRUE arguments passed? No TRUE args ==> FALSE even no of TRUE args ==> TRUE Otherwise ==> FALSE :confused: Tadeusz Westawic Sum quid sum.

                            N 1 Reply Last reply
                            0
                            • N Not Active

                              I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

                              private void Test()
                              {
                              Logic(false, false, false, false, false, false, false);
                              Logic(false, false, false, false, true, true, true);
                              Logic(false, false, false, false, true, false, false);
                              Logic(false, false, true, false, true, true, false);
                              Logic(false, false, true, true, true, true, true);
                              }

                              private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
                              {
                              bool result = [What algorithm goes here];

                              System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
                              

                              }


                              I know the language. I've read a book. - _Madmatt

                              F Offline
                              F Offline
                              fjdiewornncalwe
                              wrote on last edited by
                              #26

                              ( ( d && dl ) && ( r && rl ) ) || ( (d && dl) && ( !r && !rl) ) || ( (!d && !dl) && ( r && rl ) )

                              I wasn't, now I am, then I won't be anymore.

                              N 1 Reply Last reply
                              0
                              • T Tadeusz Westawic

                                Is it simply the number of TRUE arguments passed? No TRUE args ==> FALSE even no of TRUE args ==> TRUE Otherwise ==> FALSE :confused: Tadeusz Westawic Sum quid sum.

                                N Offline
                                N Offline
                                Not Active
                                wrote on last edited by
                                #27

                                What are you confused about? Perhaps you are confused that the problem had been solved 18 days ago by people how were not confused.:confused:


                                I know the language. I've read a book. - _Madmatt

                                T 1 Reply Last reply
                                0
                                • F fjdiewornncalwe

                                  ( ( d && dl ) && ( r && rl ) ) || ( (d && dl) && ( !r && !rl) ) || ( (!d && !dl) && ( r && rl ) )

                                  I wasn't, now I am, then I won't be anymore.

                                  N Offline
                                  N Offline
                                  Not Active
                                  wrote on last edited by
                                  #28

                                  Only 18 days after everyone else. Glad it wasn't urgentz


                                  I know the language. I've read a book. - _Madmatt

                                  F 1 Reply Last reply
                                  0
                                  • N Not Active

                                    What are you confused about? Perhaps you are confused that the problem had been solved 18 days ago by people how were not confused.:confused:


                                    I know the language. I've read a book. - _Madmatt

                                    T Offline
                                    T Offline
                                    Tadeusz Westawic
                                    wrote on last edited by
                                    #29

                                    There are unanswered posts of my own that are months old and I would still appreciate any other point of view as long as it is mathematically valid and programmable. Are you saying my post is illegal? Take off that heavy badge once in a while. Tadeusz Westawic Sum quid sum.

                                    N 1 Reply Last reply
                                    0
                                    • N Not Active

                                      Only 18 days after everyone else. Glad it wasn't urgentz


                                      I know the language. I've read a book. - _Madmatt

                                      F Offline
                                      F Offline
                                      fjdiewornncalwe
                                      wrote on last edited by
                                      #30

                                      :laugh: I didn't even notice that. Man, do I suck... :-D

                                      I wasn't, now I am, then I won't be anymore.

                                      1 Reply Last reply
                                      0
                                      • T Tadeusz Westawic

                                        There are unanswered posts of my own that are months old and I would still appreciate any other point of view as long as it is mathematically valid and programmable. Are you saying my post is illegal? Take off that heavy badge once in a while. Tadeusz Westawic Sum quid sum.

                                        N Offline
                                        N Offline
                                        Not Active
                                        wrote on last edited by
                                        #31

                                        Tadeusz Westawic wrote:

                                        There are unanswered posts of my own

                                        There is the difference. This post was answered by several people quite a long time ago.

                                        Tadeusz Westawic wrote:

                                        Are you saying my post is illegal?

                                        losen up and perhaps vist more often


                                        I know the language. I've read a book. - _Madmatt

                                        1 Reply Last reply
                                        0
                                        • N Not Active

                                          I've probably been staring at this far too long but I can't find an algorithm that will return the correct results for the code below. Anyone have some fresh ideas?

                                          private void Test()
                                          {
                                          Logic(false, false, false, false, false, false, false);
                                          Logic(false, false, false, false, true, true, true);
                                          Logic(false, false, false, false, true, false, false);
                                          Logic(false, false, true, false, true, true, false);
                                          Logic(false, false, true, true, true, true, true);
                                          }

                                          private void Logic(bool f, bool fl, bool d, bool dl, bool r, bool rl, bool expected)
                                          {
                                          bool result = [What algorithm goes here];

                                          System.Diagnostics.Debug.Assert(result == expected, "Does not match expected results");
                                          

                                          }


                                          I know the language. I've read a book. - _Madmatt

                                          R Offline
                                          R Offline
                                          Radhakrishnan G
                                          wrote on last edited by
                                          #32

                                          private void Logic( bool f1, bol f2, bool f3, bool f4, bool f5, bool f6, bool expected)
                                          {
                                          bool result = ((!f1) && (!f2) && f5 && f6 && ( ((!f3) && (!f4)) || ( f3 && f4 )));
                                          System.Diagnostics.Debug.Assert( result == expected, "Does not match expected results" );
                                          }

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups