{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:13Z","timestamp":1779836713715,"version":"3.53.1"},"reference-count":8,"publisher":"Cambridge University Press (CUP)","issue":"2","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":6064,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1992,4]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>In 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.<\/jats:p>\n                  <jats:p>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.<\/jats:p>\n                  <jats:p>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.<\/jats:p>","DOI":"10.1017\/s0956796800000320","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:14:34Z","timestamp":1226056474000},"page":"203-212","source":"Crossref","is-referenced-by-count":9,"title":["Distributed random number generation"],"prefix":"10.1017","volume":"2","author":[{"given":"F. Warren","family":"Burton","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Rex L.","family":"Page","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800000320_ref005","first-page":"11","volume-title":"Proc. IV Higher Order Workshop","author":"Hughes","year":"1991"},{"key":"S0956796800000320_ref001","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/31.3.243"},{"key":"S0956796800000320_ref007","doi-asserted-by":"publisher","DOI":"10.1007\/BF00277387"},{"key":"S0956796800000320_ref002","doi-asserted-by":"publisher","DOI":"10.1145\/800068.802154"},{"key":"S0956796800000320_ref003","volume-title":"A non-strict purely functional language (Version 1.0)","author":"Hudak","year":"1990"},{"key":"S0956796800000320_ref004","first-page":"308","volume-title":"Proc. 1989 Glasgow Workshop","author":"Hughes","year":"1990"},{"key":"S0956796800000320_ref006","doi-asserted-by":"publisher","DOI":"10.1145\/62959.62969"},{"key":"S0956796800000320_ref008","doi-asserted-by":"publisher","DOI":"10.1145\/63039.63042"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800000320","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:35:05Z","timestamp":1779834905000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800000320\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1992,4]]},"references-count":8,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1992,4]]}},"alternative-id":["S0956796800000320"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800000320","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1992,4]]}}}