In other words: you're looking for a way to enumerate a bag of strings.

As far as algorithms go, (Minimal) Perfect Hashing can do it. However. Those mappings typically involve lookups in two or three tables i.e. random memory accesses, whereas straightforward hashing needs just one. So going via enumeration will probably cost you 4x compared to simple hash lookup.

When it comes to hashing, there are various complicated monstrosities out there — such as dense maps — that serve a particular purpose (trading speed for compactness). Speed-wise, you can't beat the traditional hash.


In reply to Re: Generating Unique numbers from Unique strings by Anonymous Monk
in thread Generating Unique numbers from Unique strings by rjohn1

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.