[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Random number generation : requirements

Subject: Re: Random number generation : requirements
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 6 May 2014 17:22:20 -0000
Re:  Random number generation : requirements
I recently used the EXSLT random number extension in Saxon to generate
random numbers within a range from 0 to say 20,000 in order to randomly
select items from a document (in my case, words from the standard Linux
words spellcheck dictionary, made into a simple XML document for ease of
XSLT access).

This was the relevant code I used:

<xsl:variable name="words" as="document-node()"
select="document('data-files/words.xml')"/>
  <xsl:variable name="wordCount" as="xs:integer"
select="count($words/*/*)"/>


<xsl:variable name="seed"
select="(seconds-from-dateTime(current-dateTime()) + .) * 1000"
as="xs:double"/>


<xsl:variable name="wordIndex" as="xs:integer"
        select="if ($doRandom)
        then xs:integer(exslt-random:random-sequence(1, $seed) *
$wordCount)
        else ."
        />

The seed construction is a little weak but sufficient for my needs since I
wouldn't be running the process twice within the same second.


Of course, being able to get a truly random seed would be nice but
pseudo-random is usually good enough.

Cheers,

Eliot

bbbbb
Eliot Kimber, Owner
Contrext, LLC
http://contrext.com




On 5/6/14, 11:54 AM, "Michael Kay mike@xxxxxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

>The W3C WGs are looking at the idea of introducing a random-number
>function of some kind in XPath 3.1. The challenge of course is making
>this both usable and a pure function with no side-effects. We have
>various design ideas which we need to test against requirements.
>
>If you have any applications that use or need such a function, please
>could I have a brief description of the way it uses random numbers, e.g.
>just wanting a single random number, a random permutation of 52 integers,
>an arbitrary sequence of random numebrs for test data generation, etc.
>
>If you're currently using the EXSLT random-sequence() function, please
>share your experience with it.
>
>Michael Kay
>Saxonica

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.