login
Output of the linear congruential pseudo-random number generator rand() used in Microsoft's Visual C++.
5

%I #23 Aug 29 2024 09:14:41

%S 0,38,7719,21238,2437,8855,11797,8365,32285,10450,30612,5853,28100,

%T 1142,281,20537,15921,8945,26285,2997,14680,20976,31891,21655,25906,

%U 18457,1323,28881,2240,9725,32278,2446,590,840,18587,16907,21237,23611,12617

%N Output of the linear congruential pseudo-random number generator rand() used in Microsoft's Visual C++.

%H Alois P. Heinz, <a href="/A096558/b096558.txt">Table of n, a(n) for n = 1..10000</a>

%H <a href="/index/Ps#PRN">Index entries for sequences related to pseudo-random numbers.</a>

%F b(1)=0, b(n)=(b(n-1) * 214013 + 2531011) mod 2^32. a(n) = (floor(b(n)/65536) mod 32768). The sequence is periodic with period length 2^32.

%F a(n) = floor(A096557(n)/2^16) mod 2^15 = floor((2531011*(214013^(n-1)-1)/214012 mod 2^32)/2^16) mod 2^15. - _M. F. Hasler_, May 14 2015

%p b:= proc(n) option remember; `if`(n<2, 0,

%p irem(214013 *b(n-1) +2531011, 4294967296))

%p end:

%p a:= n-> irem(iquo(b(n), 65536), 32768):

%p seq(a(n), n=1..50); # _Alois P. Heinz_, Jun 10 2014

%t A096557 = NestList[Mod[#*214013 + 2531011, 2^32] &, 0, 50];

%t Mod[BitShiftRight[A096557, 16], 2^15] (* _Paolo Xausa_, Aug 29 2024 *)

%o (PARI) a(n)=A096557(n)>>16%2^15 \\ _M. F. Hasler_, May 14 2015

%o (PARI) A096558(n)=lift((Mod(214013, 2^34)^(n-1)-1)*13129821757)>>18%32768 \\ _M. F. Hasler_, May 14 2015

%Y Cf. A096557 corresponding internal states. A096550-A096561 other pseudo-random number generators.

%K nonn,easy

%O 1,2

%A _Hugo Pfoertner_, Jul 21 2004