Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

DRAND48(3C)

��������
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - ��������� ���������� �������������� ��������������� �����

���������

	double drand48 ( )
	
	double erand48 (xsubi)
	unsigned short xsubi [3];
	
	long lrand48 ( )
	
	long nrand48 (xsubi)
	unsigned short xsubi [3];
	
	long mrand48 ( )
	
	long jrand48 (xsubi)
	unsigned short xsubi [3];
	
	void srand48 (seedval)
	long seedval;
	
	unsigned short *seed48 (seed16v)
	unsigned short seed16v [3];
	
	void lcong48 (param)
	unsigned short param [7];

��������
������ ��������� ������� ��������� ��������������� ����� � �������������� ������ ���������� ��������� ������������� ��������� � 48-������ ����� ����������.

������� drand48 � erand48 ���������� ��������������� ������������ ����� ������� ��������, ���������� �������������� � ��������� [0.0, 1.0).

������� lrand48 � nrand48 ���������� ��������������� ����� ����� ���� long, ���������� �������������� � ��������� [0, 2^31).

������� mrand48 � jrand48 ���������� ����� ����� �� ������, ���� long, ���������� �������������� � ��������� [-2^31, 2^31).

������� srand48, seed48 � lcong48 ������������ ����� ���������������� ����� �����, ��������� � ������� ������ �������������� ������ �����-���� �� ������� drand48, lrand48, mrand48. (���� ��� � �� �������������, � ��� ������, ����� ������� drand48, lrand48, mrand48 ����� ������� ��� ���������������� ��������� � ���������������� ������ �����, ����������� ���������� ��������� ��������, ����������� �� ���������, ����� ����������� �������������.) ������� erand48, nrand48 � jrand48 �� ������� ���������������� ��������� � ���������������� ������ �����.

��� ��������� ��������, �������� ������������������ 48-������ ����� �������� X [i] � ������������ � �������� ������������ ��������

	X [n+1] = (a * X [n] + c) mod m           n   0

�������� m = 2^48 � ������� ������������ 48-������ ����� ����������. ���� �� ���� ���������������� ��������� � lcong48, ��� ������������ a � ���������� ��������� c ����� ������� ��������� ��������:

	a = 0x5DEECE66D = 0273673163155
	c = 0xB = 013

������ ������ ���������� ������������� �������� ��� ����� �� ������� drand48, erand48, lrand48, nrand48, mrand48 ��� jrand48 �������� ��������� ���������� 48 ������� �������� X[i]. ����� �� ���� ������� ������� ���� � ����������, ������������ ����� ���������� �������, ������� � ������������� � ������������ ��������.

������� drand48, lrand48 � mrand48 ��������� ��������� ��������������� 48-������ �������� X[i] �� ���������� ������ - ��� ������ ��� ������ ���� ���������������� ����� ����� �������. ��� ������� �� erand48, nrand48 � jrand48 ���������� ��������� ������ ���� ������������� ������ ��� ��������� �������� X[i], ������������ ��� ������ ��� ��������. ��� ������� ������������� �� �������; ���������� ��������� ������ ������ ��������� �������� ��������� �������� X[i] � ������ �� ���� 16-������ ���� � �������� ��� ��� ��������. ����������� ������������� ��������� ���������� ������� erand48, nrand48 � jrand48 ��������� ��������� ������� ������� ��������� ������������ ��������� ����������� ������� ��������������� �����; ������� �������, ������������������ ����� � ������ ������ �� ������� �� ����, ��� ����� ��������� ���������� ��� ��������� ����� ������ �������.

���������������� ������� srand48 ������������� ������� 32 ���� �������� X[i] ������� 32-� ����� ������ ���������. ���������� �� �������� ������� ���, ������� 16 ��� X[i] ��������������� ������� 0x330E.

���������������� ������� seed48 ������������� �������� ���� 48 ��� X[i] �� �������� ��������� - ������� �� ���� 16-������ ����. ���������� �������� X[i] ���������� � 48-������ ���������� �����, ������������ ������ �������� seed48. ������������ �������� seed48 �������� ������������ ����� ��������� �� ���� �����. ������������ ��������� � ����������� ������� ������������, ������ �� ����� ��������� �������� ��� ����������� ��������� � ������ ����� � �������. ��� �����, ��������� ���������, ������� ������� � ��������� ��������� �������� X[i], ������� �����, ��� �����������, ���������� ��� ��������� ������������� � ������� seed48.

���������������� ������� lcong48 ���� ������������ ����������� ������� ��������� �������� X [i], �������� ������������ a � ���������� ��������� c. � �������, ���������� �� ����������, �������� param [0-2] ���������� X [i], �������� param [3-5] - ����������� a �, �������, param [6] - 16-������ ��������� c. ����� ������ lcong48 ������������ "�����������" �������� ������������ a � ��������� c, ��������� ����, ����� ����� ������ ����� ���� �� ������� srand48 ��� seed48.

����������
�������� ����� ������� ��������� ������� ��� ��������� ������ ����� ���� ����������� ���� �� �����������, �� ���������� ����������� ������������ �����. � ����� �������� ������� drand48 � erand48 �� ����������; �� �������� ��������� ��� �������:

	long irand48 (m)
	unsigned short m;
	
	long krand48 (xsubi, m)
	unsigned short xsubi [3], m;

������� irand48 � krand48 ���������� ��������������� ����� ����� ���� long, ���������� �������������� � ��������� [0, m-1].

��. �����
rand(3C).
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT