in reply to Re: Determining uniqueness in a string.
in thread Determining uniqueness in a string.

There will be 10! entries in the the hash. Extrapolating the size it takes to store 10!/10, 10!/5 and 10!/2 10 character strings in a hash, I estimate the needed size to be around 170Mb. Trying to stuff 10! of those strings in a hash cause all the machines I tried it on to swap - with top showing a memory usage of around half a Gb of the running program.
Perl --((8:>*
  • Comment on Re^2: Determining uniqueness in a string.

Replies are listed 'Best First'.
Re^3: Determining uniqueness in a string.
by Moron (Curate) on Oct 03, 2005 at 15:51 UTC
    I had thought of that - but 170 Mb would be okay for all my machines - one compromise might be to store say 5 digits (10P5) with a simple array of the remaining 5 being referenced as the value, e.g.:
    $hash{ '01234' } = \( 5..9 );
    This would reduce the storage by a factor of more than a hundred, while requiring that the last half of the digits would then need to be compared with the array being also pre-stored at each outer node of the hash, but with the same 120x performance for those last digits as compared with processing 10 without prestored results -- total performance improvement should be around 80x in this case (but PLUS the fixed overheads if you don't have linux shared memory to pre-store the solution)

    -M

    Free your mind