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

Re: Random number seed generation

Subject: Re: Random number seed generation
From: Michel Hendriksen <michel.hendriksen@xxxxxxxxx>
Date: Fri, 10 Dec 2010 10:40:01 +0100
Re:  Random number seed generation
Thnx

This looks like something that I could work with. I only don't know
how this will be effecting performance as I would need to call it
often.

Maybe I can combine this with keeping track of the seed in some parts
of the code.

Michel Hendriksen
Kensas bv

On Fri, Dec 10, 2010 at 12:38 AM, TW <zupftom@xxxxxxxxxxxxxx> wrote:
> I don't know whether this would give reasonably results, but what
> about generating a seed from the result of generate-id()?  Maybe like
> so, calculating kind of a digit sum (based on the the order the
> variables occur in "name-chars"):
>
> <template name="create-seed">
>  <param name="string" select="generate-id(.)"/>
>  <param name="preliminary-seed" select="0"/>
>  <param name="maximum-value" select="100"/>
>
>  <variable name="name-chars"
>
select="':ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-.0123456789'"
/>
>
>  <choose>
>    <when test="string-length($string) != 0">
>      <call-template name="create-seed">
>        <with-param name="string" select="substring($string,2)"/>
>        <with-param name="preliminary-seed"
>          select="($preliminary-seed + string-length(
>
> substring-before($name-chars,substring($string,1,1))
>                                       )
>                  ) mod $maximum-value"/>
>        <with-param name="maximum-value" select="$maximum-value"/>
>      </call-template>
>    </when>
>    <otherwise>
>      <value-of select="$preliminary-seed"/>
>    </otherwise>
>  </choose>
> </template>
>
>
> Of course this only makes sense if you need at most one random number
> per source document node (after all, the random number will be the
> same if the seed is the same).  Or you can pass the old seed as
> parameter "preliminary-seed" when you create a new seed.
>
> Thomas W.
>
>
> 2010/12/9 Michel Hendriksen <michel.hendriksen@xxxxxxxxx>:
>> That is not an issue as that would be fixed easily. But I need to call
>> the random functions from different places and that code would have to
>> keep track of the last generated number. Also, when scaling the value
>> (p.e.) to boolean I would need the original unscaled value for the
>> next call. So results from any functions like that would have to
>> return (combined) two values or would need two calls, one for the
>> random number and one for the scaling.
>>
>> So time in millis from 1970 something would be a nice 'seed' and much
>> easier to work with.
>>
>> Michel
>>
>> On Thu, Dec 9, 2010 at 4:58 PM, Tony Graham
>> <Tony.Graham@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>>> On Thu, Dec 09 2010 14:04:57 +0000, michel.hendriksen@xxxxx wrote:
>>>> I'm using Saxon9he processor XSLT 2.0, and I am trying to get some
>>>> random numbers. I'm currently using fxsl/random for this. The problem
>>>> is that it needs a seed.
>>>> I tried using current time stuff but that doesn't change during the
>>>> transfomation using the stylesheet.. So I tried an extension function
>>>> to cal to Java but that doesn't seem to work. Examples are probably
>>>
>>> That would require "Extensibility using reflexion", which isn't in Saxon
>>> 9 HE.  See http://www.saxonica.com/feature-matrix.xml (ideally after it
>>> has a stylesheet PI added to it).
>>>
>>>> XSLT 1.0 but should be ok.
>>>>
>>>> Is this possible on Home Edition? Did things change in transition to
>>>> 2.0? Is there an other way to get some seed for the random function? I
>>>
>>> More in the transition from 'B' to 'HE', IIRC.
>>>
>>>> can't resuse the value as I would have to keep it somewhere in between
>>>> calls. One idea would be to use generate-id() but that gives a string.
>>>> Could be useful when this is always convertible to a number.
>>>>
>>>> I'm running the processor from a Java application now. It is a
>>>> learning project and should be able to run Genetic Algorithm
>>>> functionality, so lots of random stuff is needed.
>>>
>>> Just pass a seed generated with Java as a stylesheet parameter.
>>>
>>> Regards,
>>>
>>>
>>> Tony Graham                         Tony.Graham@xxxxxxxxxxxxxxxxxxxxxx
>>> Director                                  W3C XSL FO SG Invited Expert
>>> Menteith Consulting Ltd                               XML Guild member
>>> XML, XSL and XSLT consulting, programming and training
>>> Registered Office: 13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland
>>> Registered in Ireland - No. 428599   http://www.menteithconsulting.com
>>>  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
>>> xmlroff XSL Formatter                               http://xmlroff.org
>>> xslide Emacs mode                  http://www.menteith.com/wiki/xslide
>>> Unicode: A Primer                               urn:isbn:0-7645-4625-2

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.