Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/14/06 13:50
Modified:
  12/14/06 13:53

Read: times


 
#129448 - My approach.
Responding to: ???'s previous message
My own function generates the sequence I posted in the original post. It takes one element as an input and returns the next element in the sequence.

unsigned int GenerateNextNumber(unsigned int seed)
{
"If all zeros are on the LSB end, start over with
 (number of zeros + 1) and move them to the MSB
 end."
"Else move the zeros around."

}


(sorry, can't post the actual code here. My employer would mind.)

It works by moving the zeros around in a certain pattern, until all zeros are at the LSB end of the number. Then it starts over with one additional zero and all zeros at the MSB end of the number. I've written a test case to verify that it works correctly.

I was just wondering if there was a more efficient way of achieving the same goal, apart from using a table (which would be too big for 16-bit numbers).

The generated number represents a subset of a set of 17 elements (one is special and always included, the other 16 can be included or left out).

List of 40 messages in thread
TopicAuthorDate
Looking for an algorithm.            01/01/70 00:00      
   I'd split it in two (or 4)            01/01/70 00:00      
      I've shown, in increseing detail, how to do it            01/01/70 00:00      
   Sorted, or only counted?            01/01/70 00:00      
      Counting is enough            01/01/70 00:00      
         Not sorting or counting then??            01/01/70 00:00      
            My approach.            01/01/70 00:00      
               Erik's idea is fast and simple!            01/01/70 00:00      
   did you even consider what I posted            01/01/70 00:00      
      I considered lookup tables.            01/01/70 00:00      
         look at my code it is right there            01/01/70 00:00      
         Can you explain your table?            01/01/70 00:00      
            Interpret it in binary            01/01/70 00:00      
               Hhm...            01/01/70 00:00      
                  Use of the table/algorithm            01/01/70 00:00      
                  misunderstanding            01/01/70 00:00      
                     Ah. I thought so.            01/01/70 00:00      
            explanation of table            01/01/70 00:00      
   table lookup            01/01/70 00:00      
   now, I'm confused            01/01/70 00:00      
      The keyword is "enumerate".            01/01/70 00:00      
         i give up since nobody can answer in english            01/01/70 00:00      
            Meaning #1            01/01/70 00:00      
               there must be some language problem here            01/01/70 00:00      
                  Basically, a)            01/01/70 00:00      
                     then this will work (and I believe the fastest)            01/01/70 00:00      
                        maybe yes            01/01/70 00:00      
                           maybe faster, but not6 what he ned            01/01/70 00:00      
                              it's sometimes not easy to describe what one needs            01/01/70 00:00      
                                 Sorting or counting            01/01/70 00:00      
                                    Bit shifting            01/01/70 00:00      
                                    I elaborated.            01/01/70 00:00      
                                       Christoph, have you tried...            01/01/70 00:00      
                                          It looks interesting ..            01/01/70 00:00      
                                             well, you said that...            01/01/70 00:00      
                                                here you are            01/01/70 00:00      
                                                   Works.            01/01/70 00:00      
                                                      compiler            01/01/70 00:00      
                                                         Benchmark            01/01/70 00:00      
                                                            thanks!            01/01/70 00:00      

Back to Subject List