Author:
Burton F. Warren,Page Rex L.
Abstract
AbstractIn a functional program, a simple random number generator may generate a lazy list of random numbers. This is fine when the random numbers are consumed sequentially at a single point in the program. However, things are more complicated in a program where random numbers are used at many locations, such as in a large simulation. The programmer should not need to worry about providing separate generators with a unique seed at each point where random numbers are used. At the same time, the programmer should not need to coordinate the use of a single stream of random numbers in many parts of the program, which can be particularly difficult with lazy evaluation or parallel processing.We discuss several techniques for distributing random numbers to various parts of a program, and some methods of allowing different program components to evaluate random numbers locally. We then propose a new approach in which a random number sequence can be split at a random point to produce a pair of random number sequences that can be used independently at different points in the computation.The approach can also be used in distributed procedural programs, where it is desirable to avoid dealing with a single source of random numbers. The approach has the added advantage of producing repeatable results, as might be needed in debugging, for example.
Publisher
Cambridge University Press (CUP)
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Type-Level Property Based Testing;Proceedings of the 9th ACM SIGPLAN International Workshop on Type-Driven Development;2024-08-28
2. Selection of node with editing rights and privacy protection mechanisms based on dual-blockchain;Journal of King Saud University - Computer and Information Sciences;2023-12
3. Reproducible parallel simulation experiments via pure functional programming;2019 IEEE/ACM 23rd International Symposium on Distributed Simulation and Real Time Applications (DS-RT);2019-10
4. Evaluation of splittable pseudo-random generators;Journal of Functional Programming;2015
5. Fast splittable pseudorandom number generators;ACM SIGPLAN Notices;2014-12-31