From owner-FreeBSD-users-jp@jp.FreeBSD.org Thu Jun 20 13:12:32 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g5K4CWo73403;
	Thu, 20 Jun 2002 13:12:32 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from gale.nintendo.co.jp (gale.nintendo.co.jp [211.8.190.211])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id g5K4CWc73398
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 20 Jun 2002 13:12:32 +0900 (JST)
	(envelope-from shirai@nintendo.co.jp)
Received: from sky.nintendo.co.jp (sky.nintendo.co.jp [10.100.1.2])
	by gale.nintendo.co.jp (Postfix) with ESMTP id 8AFE6153EC
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 20 Jun 2002 13:12:50 +0900 (JST)
Received: from pon.nintendo.co.jp (pon.nintendo.co.jp [10.115.1.1])
	by sky.nintendo.co.jp (8.9.3/3.7W/2002050715) with ESMTP id NAA13160
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 20 Jun 2002 13:12:34 +0900
Received: from nintendo.co.jp (IDENT:shirai@localhost [127.0.0.1])
	by pon.nintendo.co.jp (8.9.3/3.7W/2002061716) with ESMTP id NAA07446
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 20 Jun 2002 13:12:30 +0900
Message-Id: <200206200412.NAA07446@pon.nintendo.co.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
In-reply-to: Your message of Wed, 19 Jun 2002 19:59:08 JST.
             <20020619.195908.71080343.oishi@sra.co.jp>
Date: Thu, 20 Jun 2002 13:12:30 +0900
From: Takashi SHIRAI <shirai@nintendo.co.jp>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020611
X-Sequence: FreeBSD-users-jp 69444
Subject: [FreeBSD-users-jp 69444] Re: [info] Updated FreeBSD QandA
Errors-To: owner-FreeBSD-users-jp@jp.FreeBSD.org
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: shirai@nintendo.co.jp

$B!!$7$i$$$G$9!#(B

In Message-Id <20020619.195908.71080343.oishi@sra.co.jp>
        OISHI Masakuni <oishi@sra.co.jp>$B$5$s(Bwrites:
> $BBg@P$G$9!#(B

> # $B;d$bAG?M$G$9$,!D!D(B

$B!!==?tG/A0!"(Bfj $B$G(B mohta $B$5$s$K$3$C$T$I$/$$$8$a$i$l$F0JMh!";d(B
$B$K$H$C$FMp?t$O54Lg$J$b$N$G!"M>$j?<$/$ODI5Z=PMh$F$$$^$;$s!#(B


> $B>/$J$/$H$b!"7W;;5!%7%_%e%l!<%7%g%sMQ$NMp?t$H(B
> $B0E9fMQ$NMp?t$O6hJL$7$F9M$($k$Y$-$G$7$g$&!#(B

$B!!(BQandA $B$K=q$/$J$i!"$=$&$$$&>u67$K1~$8$F$N<h<NA*Br$r<(:6$9$k(B
$B0lJ8$,MW$j$^$9$M!#Cf$G$b(B simulation $B$H0E9f$H$O$A$g$C$HMQES$,(B
$BFC0[$J$N$G!"4:$($F6qBNE*$K5-$7$?J}$,$$$$$+$bCN$l$^$;$s!#(B


> $B7W;;5!%7%_%e%l!<%7%g%s$G$O!"D9$$<~4|$d0lMMJ,I[@-$NB>$K$b!"(B
> $BBgNL$NMp?tNs$r9bB.$KF@$i$l$k$3$H$dF10l$N=i4|CM$+$i(B
> $BF1$8Mp?tNs$r7+$jJV$7F@$i$l$k$3$H(B($B:F8=@-(B)$B$J$I$,=EMW$K$J$C$F$-$^$9!#(B

$B!!(Barc4random(3) $B$OL@<(E*$K=i4|2=$7$J$/$F$b>!<j$K(B /dev/urandom
$B$G=i4|2=$5$l$F$7$^$C$F!"$I$&$"$,$$$F$b0U?^E*$JMp?tNs$K=i4|2=(B
$B$9$k$3$H$,=PMh$^$;$s$+$i!"3N$+$K:F8=@-$O$"$j$^$;$s$M!#(B

$B!!$?$@!"9bB.@-$H$$$&4QE@$N$_$J$i$P!"(Barc4random(3) $B$b$=$s$J$K(B
$BCY$$$b$N$G$O$"$j$^$;$s!#$=$l$>$l$r(B 1000 $BK|2s<B9T$7$?>l9g$N;~(B
$B4V$r(B time(1) $B$G7WB,$7$F$_$^$7$?!#(B
$B!!(Brand(3)/random(3)/lrand48(3) $B$OA4$F(B time(2) $B$NCM$r(B seed $B$K(B
$B$7$F=i4|2=$7$F$$$^$9$,!"=i4|2=$O0l2s$N$_$J$N$G!"$I$l$b=i4|2=(B
$B$K$+$+$k;~4V$OL5;k$7$F9=$o$J$$DxEY$N$b$N$@$H;W$$$^$9!#(B
	rand(3):	1.61 real	1.61 user	0.00 sys
	random(3):	1.89 real	1.89 user	0.00 sys
	lrand48(3):	7.26 real	7.26 user	0.00 sys
	arc4random(3):	5.67 real	5.65 user	0.00 sys

$B!!$^$?!"$P$i$D$-$bHf3S$7$F$_$^$7$?!#8x@5$KHf3S$9$k$?$a4:$($F(B
$BMp?tCM$N(B 256 $B$K$h$k>jM>(B (rand % 256) $B$r<h$C$F!"(B1000 $BK|2s$N;n(B
$B9T$KBP$9$k3FMp?tCMH/@82s?t$NI8=`JP:9$r7W;;$7$F$_$^$7$?!#(B
$B!!$=$l$>$l!":8$NCM$OC1=c$KFHN);v>]$H$7$F8+$J$7$?>l9g$NCM$G!"(B
$B1&$NCM$O(B 256 x 256 $B$N(B matrix $B$r:n@.$7$FD>A0$NMp?tCM$KB3$/CM(B
$B$,$I$&J,I[$9$k$+$r7WB,$7$?>l9g$NCM$G$9!#(B
$B!!$D$^$j!"A0<T$,>.$5$1$l$P>.$5$$$[$I$P$i$D$-$NBg$-$$Mp?t$G$"(B
$B$j!"8e<T$,>.$5$1$l$P>.$5$$$[$ID>A0$NMp?tCM$X$N0MB8EY$N>.$5$$(B
$BMp?t$G$"$k$3$H$r<($7$^$9!#(B
	rand(3):	  0.499985	2436.632969
	random(3):	187.640198	  12.340895
	lrand48(3):	163.742056	  10.389970
	arc4random(3):	188.478488	  12.376886

$B!!$3$l$i$rAm9g$7$FH=CG$9$k$H!"0J2<$N$h$&$J$3$H$,8@$($k$H;W$$(B
$B$^$9!#(B
rand(3):	$B<~4|@-$K4X$7$F$O:G0-$GMp?t$H$7$F$O$H$F$b;H$((B
		$B$?$b$N$G$O$J$$$,!"5U$K$=$N<~4|@-$N$?$a$K6KC<(B
		$B$KBg$-$J$P$i$D$-$,F@$i$l$k!#(B
random(3):	$B7W;;NL$O(B rand(3) $B$HBg:9$J$$3d$K$ODx$[$I$N$P(B
		$B$i$D$-$,F@$i$l$k!#(B
lrand48(3):	$B$P$i$D$-$K4X$7$F$OM%=($@$,!"$=$l$rF@$k$?$a$N(B
		$B7W;;NL$,B?2a$.$k!#(B
arc4random(3):	random(3) $B$HF1DxEY$N$P$i$D$-$7$+F@$i$l$J$$3d(B
		$B$K$O7W;;NL$,B?$$!#(B
$B!!$H$$$&$3$H$G!"(Bsimulation $B$N$h$&$KE}7WE*$KMp?t$rMQ$$$k>l9g(B
$B$K1w$$$F$O!"7W;;NL$h$jIJ<AM%@h$N>l9g$O(B lrand48(3) $B$r!"IJ<A$h(B
$B$j7W;;NLM%@h$N>l9g$O(B random(3) $B$r;H$(!"$H$$$&7kO@$K$J$k$N$G(B
$B$O$J$$$G$7$g$&$+!#(B


> $B0lJ}!"0E9f$KMQ$$$kMp?t$G:G$b=EMW$J$N$O!"2a5n$K=PNO$5$l$?Mp?tNs$+$i(B
> $B<!$K=PNO$5$l$kMp?t$rM=B,$9$k$3$H$,;v<B>eIT2DG=$G$"$k$3$H$G$9!#(B
> $B$3$N>r7o$rK~$?$9$?$a$K!"(Barc4random()$B$J$I$G8+$i$l$k$h$&$J(B
> hash$B4X?t$rMQ$$$?<BAu$,$h$/;H$o$l$F$$$^$9!#(B

$B!!>e$NB,Dj7k2L$r<u$1$F!"$=$l$>$l$N(B source $B$r2~$a$F2r@O$7$F$_(B
$B$^$7$?$,!"(Barc4random(3) $B$O:G=i$KA[A|$7$F$$$?Dx$K$OIJ<A$NNI$$(B
$BMp?t$G$O$"$j$^$;$s$G$7$?!#(B
$B!!MQ$$$F$$$k(B hash $B4X?t$O$`$7$m(B rand48(3) $B$NJ}$,$h$jJ#;($J$b(B
$B$N$G!"(Barc4random(3) $B$O!VMp?tNs!W$H$7$F$O$=$s$J$KIJ<A$NNI$$$b(B
$B$N$G$O$J$$$H;W$$$^$9!#(B
$B!!(Barc4random(3) $B$NM%0L@-$O$`$7$mO"B3$9$kMp?tCM$N4V$G$NM=B,$7(B
$B$K$/$5$K$"$k$h$&$G!"(Balgorithm $BE*$K$O7W;;$h$j$O%7%c%C%U%k$K=E(B
$BE@$rCV$$$F$$$^$9!#(B

$B!!$^$?!"(Barc4random(3) $B$,=i4|2=$KMQ$$$k(B /dev/urandom $B$K$D$$$F(B
$B$bD4$Y$F$_$^$7$?!#(B/dev/urandom $B$rC1BN$GMQ$$$?>l9g$H!"$3$l$r(B
$BMQ$$$?(B arc4random_stir(3) $B$K$h$jKh2s=i4|2=$7$F(B arc4random(3)
$B$r;H$C$?>l9g$N(B 1000 $BK|2sJ,$NI8=`JP:9$O0J2<$N$H$*$j$G$9!#(B
	/dev/urandom:	875.812038	   9.384201
	arc4random()$B2~(B:	199.112131	  12.384926
$B!!$I$&$d$i(B /dev/urandom $B<+BN!"<~4|@-$H$7$F$O$P$i$D$-$,$"$k$b(B
$B$N$N!"C1BN$H$7$F$O$P$i$D$-$N>/$J$$Mp?t$N$h$&$G$9!#$J$N$G!"$3(B
$B$l$r;H$C$FKh2s=i4|2=$7$?$H$7$F$b(B arc4random(3) $B$NE}7WE*$JIJ(B
$B<A$O$`$7$mDc2<$7$F$7$^$$$^$9!#(B

$B!!$H$$$&$3$H$O!"(Barc4random() $B$OE}7WE*$K$OA4A3IJ<A$NNI$$Mp?t(B
$B$J$I$G$O$J$/$F!"C1$K!VM=B,$7$K$/$$!W$H$$$&E@$@$1$KFC2=$7$?Mp(B
$B?t$@$H9M$($?J}$,NI$5$=$&$G$9$M!#(B


> $B$=$3$G!"(B/dev/random$B$N$h$&$K3d$j9~$_$J$I$N>pJs$r(B
> entropy pool$B$H$7$FCy$a$F$*$/$3$H$G!"Hs7hDjE*$KFbIt>uBV$,(B
> $B99?7$5$l$F$$$k$h$&$K$_$($kMp?tH/@84o$b$"$j$^$9!#(B

$B!!(Brandom(3) $B$G$b(B srandom(3) $B$NBe$o$j$K(B srandomdev(3) $B$r;H$&(B
$B$H(B /dev/urandom $B$rMxMQ$9$k$N$G!"C1=c$K(B entropy $B$rA}Bg$5$;$?(B
$B$$$@$1$J$i(B arc4random(3) $B$h$j$b(B srandomdev(3) + random(3) $B$N(B
$BJ}$,E,$7$F$$$k$+$bCN$l$^$;$s$M!#(B


> $B8DJL$N>r7o$K$b$h$j$^$9$,!"0E9fMQ$J$i(B/dev/{random,urandom}$B$,!"(B
> $B7W;;5!%7%_%e%l!<%7%g%sMQ$J$i(BMersenne Twister
> http://www.math.keio.ac.jp/matumoto/mt.html
> $B$,$*4+$a$J$N$G$O$J$$$+$H;d$O;W$$$^$9!#(B

$B!!(BOS $BHsI8=`$N$b$N$^$G4^$a$FI>2A$9$k$H$J$k$H!"A*Br;h$,B?2a$.(B
$B$FWs0UE*$JH=CG$,=P$FMh$F$7$^$&$H;W$$$^$9$N$G!"(BQandA $B$K4^$a$k(B
$B$b$N$H$7$F$O>e5-(B 4 $B<oN`$/$i$$$NHf3S$KN1$a$F$*$$$?J}$,$$$$$s(B
$B$8$c$J$$$G$7$g$&$+!)(B

$B!!$H$$$&Lu$G$3$l$^$G$N5DO@$rF'$^$($F(B QandA $B$NJ8LL$NBe0F$r9M(B
$B$($F$_$^$7$?!#(B

---- Cut Here ----
Q. $BMp?t$rF@$h$&$H(B rand(3) $B$r;H$C$?$N$G$9$,!"Hs>o$K<A$N0-$$Mp?t$,(B
   $B@8@.$5$l$F$7$^$$$^$9!#(B

A. rand(3) $B$O<A$N0-$$Mp?tH/@84X?t$G$9$N$G;H$&$Y$-$G$O$"$j$^$;$s!#(B
   $B$3$N4X?t$O2a5n$H$N8_49@-$N$?$a$KMQ0U$5$l$F$$$k$b$N$G$9$N$G!"(B
   $B?7$7$/:n@.$9$k%W%m%0%i%`$G$OB>$NMp?tH/@84X?t$r;H$&$Y$-$G$7$g(B
   $B$&!#(Brand(3) $B$K$b(B

      NAME
        rand, srand, rand_r - bad random number generator
                              ===

   $B$H=q$+$l$F$$$^$9!#(B

   FreeBSD $B$G$O!"Mp?tH/@84X?t$H$7$F0J2<$N$h$&$J$b$N$,MQ0U$5$l$F(B
   $B$$$^$9$N$G!"MQES$K1~$8$FA*$s$G2<$5$$!#(B

   rand(3)
	POSIX $B=`5r!#KX$s$I$N(B UNIX $B$GMQ0U$5$l$F$$$k!#(B
	$BIJ<A$,0-$$$N$G;H$&$Y$-$G$O$J$$!#FC$K(B BSD $B7O(B OS $B$G$OMp?t(B
	$BCM$NA4$F$N(B bit $B$,<~4|@-$r;}$D$N$GA4$/<BMQ$K$J$i$J$$!#(B
   random(3)
	POSIX $B=`5r!#<g$K(B BSD $B7O(B OS $B$GMQ0U$5$l$F$$$k!#(B
	rand(3) $B$HF1DxEY$N7W;;NL$G$h$jIJ<A$NNI$$Mp?t$rF@$k$3$H$,(B
	$B=PMh$k!#(B
	$BMp?t=i4|2=4X?t(B srandom(3) $B$NBe$o$j$K(B srandomdev(3) $B$rMQ(B
	$B$$$k$3$H$G!"(B/dev/urandom $B$rMxMQ$7$?=i4|2=$r9T$J$&$N$G!"(B
	$BMp?tNs$N:F8=@-$,ITMW$N>l9g$O!"$h$jM=B,$7$K$/$$Mp?tNs$rF@(B
	$B$k$3$H$b=PMh$k!#(B
   lrand48(3)
	POSIX $B=`5r!#<g$K(B SystemV $B7O$N(B OS $B$GMQ0U$5$l$F$$$k!#(B
	random(3) $B$h$j$bIJ<A$N9b$$Mp?t$rF@$k$3$H$,=PMh$k$,!"$=$N(B
	$B?tG\$N7W;;NL$rMW$9$k$N$G!"BgNL$KMp?t$rH/@8$5$;$kI,MW$,$"(B
	$B$k>l9g$K$O8~$+$J$$!#(B
   arc4random(3)
	OpenBSD $BM3Mh$G(B FreeBSD $B$H(B OpenBSD $B0J30$G$OKX$s$IMQ0U$5$l(B
	$B$F$$$J$$!#(B
	$BE}7WE*$K$O(B random(3) $B$HF1DxEY$N$P$i$D$-$7$+;}$?$J$$Mp?t(B
	$B$@$,!"Mp?tNs$H$7$F<!$NMp?tCM$,M=B,$7$K$/$$9=B$$K$J$C$F$*(B
	$B$j!"$^$?=i4|2=$K$O(B /dev/urandom $B$r;H$&$?$a!"0E9fMQES$K8~(B
	$B$$$F$$$k!#(B
	$B$=$N0lJ}$G!"0U?^E*$J=i4|2=$K$h$jMp?tNs$r:F8=$9$k$3$H$,=P(B
	$BMh$J$$$N$G!":F8=@-$NI,MW$J(B simulation $BMQES$K$O;H$($J$$!#(B

   $B$^$?!"7W;;NLEy$N>r7o$K$h$j!"H]1~L5$/IJ<A$N0-$$Mp?t$r;H$o$6$k(B
   $B$rF@$J$$$h$&$J>l9g$K$O!"F@$i$l$?Mp?tCM$r:F2C9)$r;\$7$?>e$GMx(B
   $BMQ$9$k$3$H$G!"$"$kDxEY$O<A$r>e$2$k$3$H$,=PMh$k$G$7$g$&!#(B
   $B:F2C9)$NNc$H$7$F$O0J2<$N$h$&$J<jCJ$,$"$j$^$9!#(B
	a.$B2<0L?t(B bits $B$O<~4|@-$,Hf3SE*Bg$-$$$N$G<N$F$k!#(B
	b.$BMp?tCM$rBg$-$JAG?t$G3d$C$?>&Kt$O>jM>$rMQ$$$k!#(B
	c.$BMp?t$rM>7W$K2?2s$+H/@8$5$;;H$o$:$K<N$F$k!#(B

---- Cut Here ----

                                               $B$7$i$$(B $B$?$+$7(B
