Can you generate two numbers?  For every sequential number 1-8000 generate a 
random number to use as a sort key.  Sort on the random key and the sequential 
numbers should get jumbled up just fine.  Shouldn't really matter if the random 
numbers repeat.  I can't say exactly how you would actually do that with just 
the utility programs.  Regards.

--
 
Donald Grinsell, Systems Programmer
Enterprise Technology Services Bureau
SITSD/Montana Department of Administration
406.444.2983 (D)


"A clever person solves a problem.  A wise person avoids it."
~ Albert Einstein

> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
> Behalf Of Farley, Peter x23353
> Sent: Monday, December 11, 2017 3:08 PM
> To: [email protected]
> Subject: Random number generation in a fixed range via utility program(s)
> only?
> 
> Is it possible to do the following using only utility programs and control
> statements?  (z/OS Unix solutions also welcome)
> 
> Task:      Generate 8-digit zoned-decimal numbers from 1 to some limit (e.g.,
> 1 to 8000) in pseudo-random order with exactly one occurrence of each number
> in the range in the final output, with no gaps (no numbers not present at
> all) and no repeats (no duplicate numbers).
> 
> I know that IEBDG can generate random binary integers 4 bytes long, which
> certainly SORT can then post-process to convert the random binary values to
> zoned-decimal values, but it does not seem to be possible to confine the
> generated random numbers to a specific range.
> 
> I do not see any "modulus" operation available in the SORT manual, so it
> apparently isn't possible to post-process the IEBDG numbers with SORT to
> convert each of the random numbers modulo the limit value.  I suppose
> division and truncation and subtraction may work, though I haven't figured
> out how yet.
> 
> The other hard problem is to guarantee that there is exactly one occurrence
> of each number and that no numbers in the range are left out.
> 
> This task is trivially possible with a fairly simple Rexx program of course,
> or with any other HLL programming or scripting language that you may choose
> to use that has a RANDOM function of some kind, but it does not seem to be
> possible using only "utility" programs and control statements as far as I can
> tell.
> 
> Does anyone else have better ideas?  Are there z/OS Unix utility programs
> that can do the job of which I am not aware?
> 
> If I already have a file of sequentially-numbered records, is there a way to
> "unsort" them into pseudo-random order?
> 
> Peter
> --
> 
> 
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential. If
> the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by e-mail
> and delete the message and any attachments from your system.
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send email to
> [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to