From QB64 Wiki
Revision as of 20:34, 23 August 2012 by imported>Clippy
Jump to navigation Jump to search

RANDOMIZE is used with a seed value to generate different random number sequences using the RND function.


RANDOMIZE [USING] seednumber

  • The seed number can be any positive or negative numerical value. The TIMER value is often used to change RND output each run.
  • If the seed number is omitted, the program will display: Random-number seed (-32768 to 32767)? request on screen.
  • USING resets a seed number sequence to the start of the sequence as if the program just started using that seed in QB64 only.
  • If the same initial seed number is used, the sequence of random numbers returned will be identical every program run.
  • The fact that random numbers would always be the same has been used for simple data encrytion.
  • Using a TIMER starting value ensures that the initial return sequence values are different almost every time the program is run!
  • RUN should reset the RANDOMIZE sequence to the starting RND function value.(Not yet in QB64)

Example 1: Using RANDOMIZE TIMER to set a different starting sequence of random numbers every run.

RANDOMIZE TIMER DO randnum% = INT(RND * 11) + 2 'add one to multiplier as INT rounds down and never equals 10 PRINT randnum% K$ = INPUT$(1) LOOP UNTIL UCASE$(K$) = "Q" 'q = quit END

Explanation: Procedure generates random integer values from 2 to 12 like a pair of dice.

Example 2: Repeating a random number sequence with RANDOMIZE USING and a specific seed value in QB64 only.

seed = 10 RANDOMIZE seed Print7 RANDOMIZE seed Print7 PRINT "Press a key to start sequence over!" K$ = INPUT$(1) RANDOMIZE USING seed Print7 SUB Print7 FOR r = 1 TO 7 PRINT RND; NEXT PRINT: PRINT END SUB

Explanation: The second RANDOMIZE statement just continues the sequence where USING in the third restarts the sequence.

See also:

Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page