× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Chris,
I would think that you might get duplicate results for different inputs.
Say, for instance that you had one situation that only consisted of operation 500. Your method would result in a hash of 500 * 1 = 500. Then suppose that you had another situation that consisted of operation 100 & 200. (100 * 1) + (200 * 2) = 100 + 400 = 500. Now, given the result, how are you going to break it back down into the original operations? Is it a 500 operation or a combination of a 100 and 200?
Perhaps instead, it would work to use powers of 10 in multiples of three. You could store 10 - 3 digit numbers in one 30,0 packed field. Then operations 100, 200, 300, 400, 500 would be stored as (100 * 10^0) + (200 * 10^3) + (300 * 10^6) + (400 * 10^9) + (500 * 10^12). This way, if your first operation is 500, your result is 500. If your operation set is 100, 200 your result is 200100.
If you want the results (It's not really a hash set) to be in order, either determine how many operations are in the set, and start with that factor of 10 and work your way down, or begin with 10^27 and go down from there. Your choice.


 More than likely, others on this list will have much better suggestions.

Duane Johnson

Push, and if you can't push - Pull,
and if you can't pull, get out of the way.




From: Chris_Bougher@xxxxxxxxxxxxx Reply-To: RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> To: rpg400-l@xxxxxxxxxxxx Subject: Compute Hash Code Date: Wed, 8 Dec 2004 12:56:12 -0500

I need to compute a hash type code for an array of 3 character strings. The
strings are always 3 digit numeric values and do not repeat within a
sequence. I was thinking that I could add the numbers together multiplying
by their position in the list. i.e.

array = '100', '200', '300', '400', '500'
hash = (100 * 1) + (200 * 2) + (300 * 3) + (400 * 4) + (500 * 5) = 5500

Does anyone see any issues with this method? Does anyone have a better
method?


Thanks Chris Bougher


-- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.