When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips

Sections:
Sample Chapters
Commonly Asked Message Board Questions
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
XML Info
Information:
Feedback
Author an Article
ASP ASP.NET ASP FAQs Message Board Feedback
Print this page.
User Tips: Making Quick, Random Decisions in an ASP Page


There are certain times when you'd like an ASP script to randomly choose to do one of N tasks. One can use the Randomize statement and the Rnd function in VBScript to select a random number. In fact, this is the only way to generate truly random numbers. But sometimes generating a purely random number isn't that important, you would just like to do 1 of N things, where each of the N events are equally probable.

For examle, on the 4GuysFromRolla.com homepage I have a space reserved to place a link to one of my two books: Designing Active Server Pages and Sams Teach Yourself ASP 3.0 in 21 Days. I wanted to randomly have each book displayed... however, I am not too concerned about true randomness and am more interested in having each book shown with equal probability.

It struck me that a very easy thing to do would be to determine the current time (using the Time function), grab the seconds (using the Second function) and then Mod 2 the result. The Mod operator is used like:

Number1 Mod Number2

dividing Number1 and Number2 and returning the remainder. Here is a simple chart of Mod values:

Mod Values
Number1Number2 Number1 Mod Number2
550
651
752
853
954
1050
660
761
862
963
1064
770
871
972
1073
880
981
1082
990
1091
10100

So, to give two events the same probability, I simply did:

Dim iEventID
iEventID = Second(Time) Mod 2

'At this point iEventID will equal 0 or 1
If iEventID = 0 then
  'do event 0
Else 'iEventID == 1
  'do event 1
End If

That's all there is to it! A quick and dirty way to act on one of two events with equal probability!

Is that Number Even or Odd?
The Mod operator can be used to quickly determine if a number is even or odd! Assume we have some integer value, iVal. If iVal Mod 2 = 0 then iVal is even; if, on the other hand, iVal Mod 2 = 1, then iVal is odd!

Happy Programming!

Return to user tips...


ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article