Thanks Steve

That will be good enough for what I need.

Marc


----- Original Message ----- From: "Wills, Steve" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Tuesday, April 08, 2008 1:26 PM
Subject: [RBASE-L] - RE: [SPAM] [RBASE-L] - Random numbers


Y'all, I'm not a statistician, but I have a reasonable understanding
thereof.  I, too wondered about this "RANDOM"-thing.  So, I decided to
test this.  I wrote the little routine below to generate 1000 RANDOM()'s
between 0 and 15 and save each to a table.  I might be wrong, but the
subsequent frequency distribution (SELECT ... GROUP BY ...) below looks
pretty valid.
I will admit, when I set the loop-counter at 100, the counts looked a
bit off.
However, I also know 2 things:
(1) I sure don't know what statistical test(s) to run against that
100-iteration result-set
(2) A bigger sample, i.e. 1000, should take of my ignorance as described
in (1)

Remember, random does not guarantee unique.  Just think about flippin' a
coin repeatedly.  The result is random within a heads||tails solution
domain and each iteration is independent of the previous and/or the
subsequent.

Let me also add that our Tigers, as a group, demonstrated last night by
their abysmal performance from the stripe in the closing minutes what is
referred to as a reversion to the mean.

My $0.02,
Steve in Memphis


-- **************************
-- *** RandomFuncTest.RMD ***
-- **************************

-- *** Init Counter var ***
SET VAR vCounter INT=0

WHILE vCounter < 1000 THEN

  -- *** Put values into DUMMY; CTXT() used to convert vCounter ***
  INSERT INTO DUMMY (*) VALUES ((RANDOM(15)),(CTXT(.vCounter)))

  -- *** Increment Counter var ***
  SET VAR vCounter=(.vCounter + 1)

ENDWHILE

RETURN



R>SELECT Dummy_INT,COUNT(*) FROM DUMMY GROUP BY Dummy_INT
Dummy_INT COUNT (*) ---------- ---------- 0 73
         1         70
         2         66
         3         79
         4         62
         5         59
         6         64
         7         79
         8         50
         9         72
        10         60
        11         58
        12         68
        13         75
        14         65



R>LIST TABLE DUMMY

  Table: DUMMY                No Lock(s)

No. Column Name        Attributes
--- ------------------
------------------------------------------------------
  1 DUMMY_INT          Type   : INTEGER
  2 DUMMY_TEXT         Type   : TEXT 8
  Current number of rows:   1000





-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Marc
Sent: Tuesday, April 08, 2008 11:56 PM
To: RBASE-L Mailing List
Subject: [SPAM] [RBASE-L] - Random numbers
Importance: Low

I just tested this 3 times and get the same numbers each time.
I am setting the Random number to 15 and created 10
The numbers I get are
0 0 5 0 5 3 8 2 10 14 each of the 3 times I tested this.

I hope I am missing something, I sent an update out several months
back that needs truley random numbers.

Marc



----- Original Message ----
From: MikeB <[EMAIL PROTECTED]>
To: RBASE-L Mailing List <[email protected]>
Sent: Friday, April 4, 2008 5:16:28 PM
Subject: [RBASE-L] - Re: Random has order ?


----- Original Message ----- From: "Castanaro, Bob" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Friday, April 04, 2008 7:06 PM
Subject: [RBASE-L] - Re: Random has order ?


I think RBTI needs to step in on this sooner or later and advise.  I'm
sure
they are probably looking at this now.  Maybe I am wrong, but I thought
the
random function generator had some sort of trigger based on the system
time it was started. I know that many, many years ago, I and some others had trouble with repeating random series, but I thought there was a fix in one of earlier
versions.

I am about to rewrite a random drug screening program based on this
function
and I need to count on it to be truly random, each time it is run.

That is the reason for GUIDs.  When it Absolutely has to be random.
Would
that Help?

Bob C

-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of MikeB
Sent: Friday, April 04, 2008 6:58 PM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Random has order ?

A Further test of 200 passwords produced 1 duplicate. YMMV


----- Original Message -----
From: "MikeB" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Friday, April 04, 2008 6:51 PM
Subject: [RBASE-L] - Re: Random has order ?


Frank,
 Try this using the new DLCALL functions in RBASE


{These two must be declared only ONCE in an RBASE SESSION}
 STDCALL function 'GetTickCount' () : integer
 STDCALL void 'Sleep' (integer)
{
 "We get the last two numbers from the TickCount, test if they are
between
 Ascii 65 and 90, if success, then add to String vPASS.  If String is
 vPassLength, then write to file.  It takes a couple of minutes to
 generate 80 passwords. In my test, there were no Dupes.  I used RBASE
 RANDOM function to make the Sleep API vary so the GetTickCount would
be
 more random as well.
}


IF (chkvar('vsleep')) = 0 THEN
 SET VAR vsleep INTEGER = 100
ENDIF

Set var vMaxWordsToGen integer = 80
Set var vPassLength integer = 8
SET VAR vret INTEGER = 0
SET VAR i INTEGER = 0
SET VAR vpass TEXT = NULL
SET VAR vgettick INTEGER = NULL
SET VAR vtext TEXT = ''
SET VAR vascii INTEGER = 0
OUTPUT holdrand.csv


WHILE i < .vMaxWordsToGen THEN
 SET VAR vsleep = (RANDOM(50))
 SET VAR vret = (dlcall('Kernel32','Sleep', vsleep))
 SET VAR vgettick = (dlcall('Kernel32','GetTickCount'))
 SET VAR vtext = (CTXT(.vgettick))
 SET VAR vascii = (INT((SGET(.vtext ,2, (SLEN(.vtext)) - 1))))
 IF vascii BETWEEN 65 AND 90 THEN
   SET VAR vpass = (.vpass + (CHAR(.vascii)))
 ENDIF
 IF (SLEN(.vpass)) = .vPassLength THEN
   WRITE .vpass
   SET VAR vpass = ''
   SET VAR i = (.i + 1)
 ENDIF
ENDWHILE
OUTPUT SCREEN
RETURN

----- Original Message -----
From: "Frank Taylor" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Friday, April 04, 2008 3:59 PM
Subject: [RBASE-L] - Random has order ?


I created a password generator the other day using the Random command
as
such

     SET VAR gen1 = (RANDOM(33))
     IF gen1 BETWEEN 1 AND 24 THEN
           SET VAR gen2 = (RANDOM(2))
     ENDIF

The code loops 8 times and uses the values of gen1 and gen2 with a
case
statement to make an 8 character password. The first random generated gives me either a letter or number and the second random generator gives me upper
or lower case if it is to be a letter (I do not use L,O or Zero in
case
you
are wondering)

I used the code to generate 7 passwords yesterday, then today I used
the
code
to generate 8 more passwords.. When I went back to look at them, the
first
7
passwords I created today, were the exact same and in the same order
as
the
Seven I created yesterday.  I went out of RBase and came back in and
sure
enough it started over..  So can I assume that Random is not really
random
but has order ?  Anyone have a suggestion as a work around, maybe
using a
system variable in the mix ?

Using RB7.6  ver 7.6.3.30321


n  Frank

Frank Taylor - Information Systems Administrator
F.J. O'Hara & Sons, Inc - Araho Transfer Inc.
Boston, MA - Rockland, ME - Miami, FL
Direct Dial - 617-790-3093
email: [EMAIL PROTECTED]





Reply via email to