Random number generator (device): Difference between revisions
Content added Content deleted
m (Line wrapping) |
(→Tcl: Added implementation) |
||
Line 6: | Line 6: | ||
<lang PicoLisp>: (in "/dev/urandom" (rd 4)) |
<lang PicoLisp>: (in "/dev/urandom" (rd 4)) |
||
-> 2917110327</lang> |
-> 2917110327</lang> |
||
=={{header|Tcl}}== |
|||
<lang tcl>package require Tcl 8.5 |
|||
# Allow override of device name |
|||
proc systemRandomInteger {{device "/dev/urandom"}} { |
|||
set f [open $device "rb"] |
|||
binary scan [read $f 4] "I" x |
|||
close $f |
|||
return $x |
|||
}</lang> |
|||
Usage: |
|||
<lang tcl>% puts [systemRandomInteger] |
|||
636131349</lang> |
Revision as of 09:11, 11 January 2011
Random number generator (device) is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
If your system has a means to generate random numbers involving not only a software algorithm (like the /dev/random devices in Unix), show how to obtain a random 32-bit number from that mechanism.
PicoLisp
<lang PicoLisp>: (in "/dev/urandom" (rd 4)) -> 2917110327</lang>
Tcl
<lang tcl>package require Tcl 8.5
- Allow override of device name
proc systemRandomInteger Template:Device "/dev/urandom" {
set f [open $device "rb"] binary scan [read $f 4] "I" x close $f return $x
}</lang> Usage: <lang tcl>% puts [systemRandomInteger] 636131349</lang>