Martin T writes: >thanks! I didn't know about floor() function in XSLT/SLAX. However, >looks like in extremely rare cases math:random() can return 1 because >according to https://... >random number calculation can be "(double)RAND_MAX / >(double)RAND_MAX". So final solution should be "floor(math:random() * >16) mod 16".
Interesting. The spec says "The math:random function returns a random number from 0 to 1", which is less than clear about the inclusivity of the range. Looks like other implementations (msxml) call the javascript Math.random() function, which returns [0, 1), but libxslt returns [0, 1] (inclusive on both ends of the range). The "mod 16" will give you slightly more 0s than strictly random. If you care, you might want a custom function, like: function my:random () { var $x = math:random(); if ($x != 1) { result $x; } else { result my:random(); } } Thanks, Phil _______________________________________________ juniper-nsp mailing list juniper-nsp@puck.nether.net https://puck.nether.net/mailman/listinfo/juniper-nsp