× 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.



Ugh....

Some sort of weighed rolling index number... Given the randomness, albeit
within a range, of the number of line items(which appears to be significant
to the end solution), keep some sort of bucket system going so that you
assign a bucket number which increments on an order# boundry to align the
line items with the order, yet, in the aggregate, achieve a more or less
balanced distribution of the bucket numbers...

Better you than me dude...

Don in DC

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Murphy, Mark
Sent: Tuesday, February 12, 2008 5:58 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: Assigning a review month, algorithm question

You want me to make it harder?

I will anyway. In addition to attempting to get approximately the same
number of items in each month,
maybe it WOULD be good to have approximately the same number of Contracts in
each month.

Try sorting the contracts in reverse order of the number of items assigned
to the contract. Then loop
through the contracts assigning one or more to each month attempting to
maintain a balance between
total number of contracts and total number of items per month. For example
if you had the following
list of contracts to sort into 2 months:

Ctr Items
1 3
2 1
3 5
4 1
5 3
6 5
7 3
8 1

Resort in the following order

Ctr Items
3 5
6 5
1 3
5 3
7 3
2 1
4 1
8 1

And assign in the following order

Ctr Month Total Items
3 1 5
6 2 5
1 1 8
5 2 8
7 1 11
2 2 9
4 2 10
8 2 11

Month 1 has 3 contracts and 11 items
Month 2 has 5 contracts and 11 items

If you just do it brute force you could end up with:
Month 1 has 2 contracts and 10 items Ctr 3 - 6
Month 2 has 6 contracts and 12 items Ctr 1 - 5 - 7 - 2 - 4 - 8

This is just a simple example with many flaws, the small sample will not
give a good distribution, but
a larger sample could give a better one. The main advantage of this way is
that you don't get 2 of
the largest contracts in the same month.





-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Wilt, Charles
Sent: Tuesday, February 12, 2008 4:01 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: Assigning a review month, algorithm question

You don't understand the problem.

The problem isn't how to figure out 1/12th the items to review.

The problem is how to decide which contracts to review in a given month such
that 1/12 the total items
are reviewed.

Example: A location has 12,000 items on contract.

During one month, we might review a single contract with 1,200 items on it.
Another month, we'd
review 100 contracts each with 100 items.

Brute force trial and error would let me determine which contracts should be
reviewed in which month.
But is there a better way?

Charles Wilt
Software Engineer
CINTAS Corporation - IT 92B
513.701.1307

wiltc@xxxxxxxxxx


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Asher613Smith
Sent: Tuesday, February 12, 2008 3:21 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: Assigning a review month, algorithm question

How about dividing the total number of records by 12 and multiplying by
month number-1,

Start = Int( records /12 ) * (Month - 1) + 1 // month one starts at
record 1

Then position to RRN Start, (using arrival sequence, not keyed sequence)

Then

RecordsToRead = Int( records /12 )
Do RecordsToRead
Read FileFormat
...
EndDo

That way, you read 1/12 of the records in the file each time. In January
you read the oldest records, in December you read the newest records.
Alternatively, you could start at record Month, and reposition 12 records
ahead each time before you do the next read, again using arrival sequence

In a message dated 02/12/08 22:06:36 Jerusalem Standard Time,
WiltC@xxxxxxxxxx writes:
Ok put your thinking caps on!



I've got a file with the following keys...

Location

Contract #

Item Number



What I need to do is assign a review month to each contract in such a
manner that approximately 1/12
the locations totals items are reviewed each month.



I've thought of a brute-force type method.

1) Get totals grouped by location, contract

2) Figure 1/12 the location's total items

3) Add contracts for a location to a given month till you get close to the
number in step 2



But I was curious if anybody had a more elegant method?



Note I'm dealing with 150,000 contacts containing 1.5 million items at 118
locations. Some locations
have 50,000+ plus, some < 100.



I've also looked at randomly assigning contracts to the review month.
That's pretty easy to do, and
it's not to bad but there are discrepancies in the # of items reviewed
each much since there's some
contracts could have 10 items and others 100s or 1000s.



Thanks!



Charles Wilt

Software Engineer

CINTAS Corporation - IT 92B

513.701.1307

wiltc@xxxxxxxxxx <mailto:wiltc@xxxxxxxxxx>




This e-mail transmission contains information that is intended to be
confidential and privileged. If you receive this e-mail and you are not a
named addressee you are hereby notified that you are not authorized to
read, print, retain, copy or disseminate this communication without the
consent of the sender and that doing so is prohibited and may be unlawful.
Please reply to the message immediately by informing the sender that the
message was misdirected. After replying, please delete and otherwise
erase it and any attachments from your computer system. Your assistance
in correcting this error is appreciated.
--
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.
--
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.




This e-mail transmission contains information that is intended to be
confidential and privileged. If
you receive this e-mail and you are not a named addressee you are hereby
notified that you are not
authorized to read, print, retain, copy or disseminate this communication
without the consent of the
sender and that doing so is prohibited and may be unlawful. Please reply to
the message immediately
by informing the sender that the message was misdirected. After replying,
please delete and otherwise
erase it and any attachments from your computer system. Your assistance in
correcting this error is
appreciated.

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.