Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید



2.8. Making Numbers Even More Random


2.8.1. Problem


You want to generate numbers that are more random than Perl's random
numbers. Limitations of your C library's random number generator
seeds can sometimes cause problems. The sequence of pseudo-random
numbers may repeat too soon for some applications.

2.8.2. Solution



Use a
different random number generator, such as those provided by the
Math::Random and Math::TrulyRandom modules from CPAN:

use Math::TrulyRandom;
$random = truly_random_value( );
use Math::Random;
$random = random_uniform( );

2.8.3. Discussion


The Perl build process tries to find the best C-library routine to
use for generating pseudo-random numbers, looking at
rand(3), random(3), and
drand48(3). (This can be changed manually at
build time, however.) The standard library functions are getting
pretty good, but some ancient implementations of the
rand function return only 16-bit random numbers or
have other algorithmic weaknesses, and may therefore not be
sufficiently random for your purposes.

The Math::TrulyRandom module uses inadequacies of your system's
timers to generate the random numbers. This takes a while, so it
isn't useful for generating a lot of random numbers.

The Math::Random module uses the randlib library
to generate random numbers. It also includes a wide range of related
functions for generating random numbers according to specific
distributions, such as binomial, poisson, and exponential.

2.8.4. See Also


The srand and rand functions in
perlfunc(1) and Chapter 29 of
Programming Perl;
Recipe 2.6 and Recipe 2.7; the
documentation for the CPAN modules Math::Random and Math::TrulyRandom



2.7. Generating Repeatable Random Number Sequences2.9. Generating Biased Random Numbers




Copyright © 2003 O'Reilly & Associates. All rights reserved.

/ 875