²é¿´: 1055  |  »Ø¸´: 0

zyj8119

ľ³æ (ÖøÃûдÊÖ)

[½»Á÷] ¡¾×ªÌû¡¿¸ÅÂÊËã·¨¼ò½é

ºÜ¶àËã·¨µÄÿһ¸ö¼ÆËã²½Öè¶¼Êǹ̶¨µÄ£¬¶øÔÚÏÂÃæÎÒÃÇÒªÌÖÂ۵ĸÅÂÊËã·¨£¬ÔÊÐíËã·¨ÔÚÖ´ÐеĹý³ÌÖÐËæ»úÑ¡ÔñÏÂÒ»¸ö¼ÆËã²½Öè¡£Ðí¶àÇé¿öÏ£¬µ±Ëã·¨ÔÚÖ´Ðйý³ÌÖÐÃæÁÙÒ»¸öÑ¡Ôñʱ£¬Ëæ»úÐÔÑ¡Ôñ³£±È×îÓÅÑ¡Ôñʡʱ¡£Òò´Ë¸ÅÂÊËã·¨¿ÉÔںܴó³Ì¶ÈÉϽµµÍËã·¨µÄ¸´ÔÓ¶È¡£
¸ÅÂÊËã·¨µÄÒ»¸ö»ù±¾ÌØÕ÷ÊǶÔËùÇó½âÎÊÌâµÄͬһʵÀýÓÃͬһ¸ÅÂÊËã·¨Çó½âÁ½´Î¿ÉÄܵõ½ÍêÈ«²»Í¬µÄЧ¹û¡£ÕâÁ½´ÎÇó½âÎÊÌâËùÐèµÄʱ¼äÉõÖÁËùµÃµ½µÄ½á¹û¿ÉÄÜ»áÓÐÏ൱´óµÄ²î±ð¡£Ò»°ãÇé¿öÏ£¬¿É½«¸ÅÂÊËã·¨´óÖ·ÖΪËÄÀà:ÊýÖµ¸ÅÂÊËã·¨£¬ÃÉÌØ¿¨ÂÞ£¨Monte Carlo£©Ëã·¨£¬À­Ë¹Î¬¼Ó˹£¨Las Vegas£©Ëã·¨ºÍÉáÎéµÂ£¨Sherwood£©Ëã·¨¡£
ÊýÖµ¸ÅÂÊËã·¨³£ÓÃÓÚÊýÖµÎÊÌâµÄÇó½â¡£ÕâÀàËã·¨ËùµÃµ½µÄÍùÍùÊǽüËÆ½â¡£¶øÇÒ½üËÆ½âµÄ¾«¶ÈËæ¼ÆËãʱ¼äµÄÔö¼Ó²»¶ÏÌá¸ß¡£ÔÚÐí¶àÇé¿öÏ£¬Òª¼ÆËã³öÎÊÌâµÄ¾«È·½âÊDz»¿ÉÄÜ»òûÓбØÒªµÄ£¬Òò´ËÓÃÊýÖµ¸ÅÂÊËã·¨¿ÉµÃµ½Ï൱ÂúÒâµÄ½â¡£
ÃÉÌØ¿¨ÂÞËã·¨ÓÃÓÚÇóÎÊÌâµÄ׼ȷ½â¡£¶ÔÓÚÐí¶àÎÊÌâÀ´Ëµ£¬½üËÆ½âºÁÎÞÒâÒå¡£ÀýÈ磬һ¸öÅж¨ÎÊÌâÆä½âΪ¡°ÊÇ¡±»ò¡°·ñ¡±£¬¶þÕß±Ø¾ÓÆäÒ»£¬²»´æÔÚÈκνüËÆ½â´ð¡£ÓÖÈ磬ÎÒÃÇÒªÇóÒ»¸öÕûÊýµÄÒò×ÓʱËù¸ø³öµÄ½â´ð±ØÐëÊÇ׼ȷµÄ£¬Ò»¸öÕûÊýµÄ½üËÆÒò×ÓûÓÐÈκÎÒâÒå¡£ÓÃÃÉÌØ¿¨ÂÞËã·¨ÄÜÇóµÃÎÊÌâµÄÒ»¸ö½â£¬µ«Õâ¸ö½âδ±ØÊÇÕýÈ·µÄ¡£ÇóµÃÕýÈ·½âµÄ¸ÅÂÊÒÀÀµÓÚËã·¨ËùÓõÄʱ¼ä¡£Ëã·¨ËùÓõÄʱ¼äÔ½¶à£¬µÃµ½ÕýÈ·½âµÄ¸ÅÂʾÍÔ½¸ß¡£ÃÉÌØ¿¨ÂÞËã·¨µÄÖ÷Ҫȱµã¾ÍÔÚÓÚ´Ë¡£Ò»°ãÇé¿öÏ£¬ÎÞ·¨ÓÐЧÅжϵõ½µÄ½âÊÇ·ñ¿Ï¶¨ÕýÈ·¡£
À­Ë¹Î¬¼Ó˹Ëã·¨²»»áµÃµ½²»ÕýÈ·µÄ½â£¬Ò»µ©ÓÃÀ­Ë¹Î¬¼Ó˹Ëã·¨ÕÒµ½Ò»¸ö½â£¬ÄÇôÕâ¸ö½â¿Ï¶¨ÊÇÕýÈ·µÄ¡£µ«ÊÇÓÐʱºòÓÃÀ­Ë¹Î¬¼Ó˹Ëã·¨¿ÉÄÜÕÒ²»µ½½â¡£ÓëÃÉÌØ¿¨ÂÞËã·¨ÀàËÆ¡£À­Ë¹Î¬¼Ó˹Ëã·¨µÃµ½ÕýÈ·½âµÄ¸ÅÂÊËæ×ÅËüÓõļÆËãʱ¼äµÄÔö¼Ó¶øÌá¸ß¡£¶ÔÓÚËùÇó½âÎÊÌâµÄÈÎһʵÀý£¬ÓÃͬһÀ­Ë¹Î¬¼Ó˹Ëã·¨·´¸´¶Ô¸ÃʵÀýÇó½â×ã¹»¶à´Î£¬¿ÉʹÇó½âʧЧµÄ¸ÅÂÊÈÎÒâС¡£
ÉáÎéµÂËã·¨×ÜÄÜÇóµÃÎÊÌâµÄÒ»¸ö½â£¬ÇÒËùÇóµÃµÄ½â×ÜÊÇÕýÈ·µÄ¡£µ±Ò»¸öÈ·¶¨ÐÔËã·¨ÔÚ×Çé¿öϵļÆË㸴ÔÓÐÔÓëÆäÔÚÆ½¾ùÇé¿öϵļÆË㸴ÔÓÐÔÓнϴó²î±ðʱ£¬¿ÉÒÔÔÚÕâ¸öÈ·¶¨Ëã·¨ÖÐÒýÈëËæ»úÐÔ½«Ëü¸ÄÔì³ÉÒ»¸öÉáÎéµÂËã·¨£¬Ïû³ý»ò¼õÉÙÎÊÌâµÄºÃ»µÊµÀý¼äµÄÕâÖÖ²î±ð¡£ÉáÎéµÂËã·¨¾«Ëè²»ÊDZÜÃâËã·¨µÄ×Çé¿öÐÐΪ£¬¶øÊÇÉè·¨Ïû³ýÕâÖÖ×ÐÐΪÓëÌØ¶¨ÊµÀýÖ®¼äµÄ¹ØÁªÐÔ¡£
±¾ÎļòÒªµÄ½éÉÜÒ»ÏÂÊýÖµ¸ÅÂÊËã·¨ºÍÉáÎéµÂËã·¨¡£
Ê×ÏÈÀ´Ì¸Ì¸Ëæ»úÊý¡£Ëæ»úÊýÔÚ¸ÅÂÊËã·¨Éè¼ÆÖаçÑÝ×ÅÊ®·ÖÖØÒªµÄ½ÇÉ«¡£ÔÚÏÖʵ¼ÆËã»úÉÏÎÞ·¨²úÉúÕæÕýµÄËæ»úÊý£¬Òò´ËÔÚ¸ÅÂÊËã·¨ÖÐʹÓõÄËæ»úÊý¶¼ÊÇÒ»¶¨³Ì¶ÈÉÏËæ»úµÄ£¬¼´Î±Ëæ»úÊý¡£
²úÉúËæ»úÊý×î³£Óõķ½·¨ÊÇÏßÐÔͬÓà·¨¡£ÓÉÏßÐÔͬÓà·¨²úÉúµÄËæ»úÐòÁÐa1,a2,...,anÂú×ã
a0=d
an=(ban-1+c)mod m n=1,2.......
ÆäÖÐ,b>=0, c>=0, d>=m¡£d³ÆÎª¸ÃËæ»úÐòÁеÄÖÖ×Ó¡£
ÏÂÃæÎÒÃǽ¨Á¢Ò»¸öËæ»úÊýÀàRadomNumber£¬¸ÃÀà°üº¬Ò»¸öÓÉÓû§³õʼ»¯µÄÖÖ×ÓrandSeed¡£¸ø¶¨ÖÖ×ÓÖ®ºó£¬¼È¿É²úÉúÓëÖ®ÏàÓ¦µÄËæ»úÊýÐòÁС£randseedÊÇÒ»¸öÎÞ·ûºÅ³¤ÕûÐÍÊý£¬¼È¿ÉÓÉÓû§Ö¸¶¨Ò²¿ÉÓÉϵͳʱ¼ä×Ô¶¯²úÉú¡£
const unsigned long maxshort=65536L;
const unsigned long multiplier=1194211693L;
const unsigned long adder=12345L;
class RandomNumber
{
private:
//µ±Ç°ÖÖ×Ó
unsigned long randseed;
public:
//¹¹Ô캯Êý£¬È±Ê¡Öµ0±íʾÓÉϵͳ×Ô¶¯²úÉúÖÖ×Ó
RandomNumber(unsigned long s=0);
//²úÉú0-n-1Ö®¼äµÄËæ»úÕûÊý
unsigned short Random(unsigned long n);
//²úÉú[0£¬1)Ö®¼äµÄËæ»úʵÊý
double fRandom(void);
};
RandomNumber::RandomNumber(unsigned long s)
{
if(s==0)
randseed=time(0);
else
randseed=s;
}
unsigned short RandomNumber::Random(unsigned long n)
{
randseed=multiplier*randseed+adder;
return (unsigned short)((randseed>>16)%n);
}
double RandomNumber::fRandom(void)
{
return Random(maxshort)/double(maxshort);
}
º¯ÊýRandomÔÚÿ´Î¼ÆËãʱ£¬ÓÃÏßÐÔͬÓàʽ¼ÆËãеÄÖÖ×Ó¡£ËüµÄ¸ß16λµÄËæ»úÐԽϺ㬽«randseedÓÒÒÆ16λµÃµ½Ò»¸ö0-65535Ö®¼äµÄËæ»úÕûÊýÈ»ºóÔÙ½«´ËËæ»úÕûÊýÓ³Éäµ½0-n-1·¶Î§ÄÚ¡£
¶ÔÓÚº¯ÊýfRandom,ÏÈÓÃRandom(maxshort)²úÉúÒ»¸ö0-(maxshort-1Ö®¼äµÄÕûÐÍËæ»úÐòÁÐ)£¬½«Ã¿¸öÕûÐÍËæ»úÊý³ýÒÔmaxshort£¬¾ÍµÃµ½[0£¬1£©Çø¼äÖеÄËæ»úʵÊý¡£
ÏÂÃæÀ´¿´¿´ÊýÖµ¸ÅÂÊËã·¨µÄÁ½¸öÀý×Ó£º
1.ÓÃËæ»úͶµã·¨¼ÆËã¦Ð
ÉèÓÐÒ»°ë¾¶ÎªrµÄÔ²¼°ÆäÍâÇÐËıßÐΣ¬ÈçͼËùʾ¡£Ïò¸ÃÕý·½ÐÎËæ»úͶÖÀn¸öµã¡£ÉèÂäÈëÔ²ÄڵĵãÔÚÕý·½ÐÎÉϾùÔÈ·Ö²¼£¬Òò¶øËùͶÈëµãÂäÈëÔ²ÄڵĸÅÂÊΪ¦Ðr^2/4r^2£¬ËùÒÔµ±n×ã¹»´óʱ£¬kÓënÖ®±È¾Í±Æ½üÕâÒ»¸ÅÂÊ£¬¼´¦Ð/4¡£Óɴ˿ɵÃʹÓÃËæ»úͶµã·¨¼ÆËã¦ÐÖµµÄÊýÖµ¸ÅÂÊËã·¨¡£¾ßÌåʵÏÖʱ£¬Ö»ÐèÒªÔÚµÚÒ»´ÎÏóÏÞ¼ÆËã¼´¿É¡£

double Darts(int n)
{
static RandomNumber dart;
int k=0;
for(int i=1;i<=n;i++){
double x=dart.fRandom();
double y=dart.fRandom();
if((x*x+y*y)<1)
k++;
}
return 4*k/double(n);
}
ÔÙ¼òµ¥¾Ù¸öÉáÎéµÂËã·¨µÄÀý×Ó¡£
ÎÒÃÇÔÚ·ÖÎöÒ»¸öËã·¨ÔÚÆ½¾ùÇé¿öϵļÆË㸴ÔÓÐÔʱ£¬Í¨³£¼Ù¶¨Ëã·¨µÄÊäÈëÊý¾Ý·þ´ÓÄ³Ò»ÌØ¶¨µÄ¸ÅÂÊ·Ö²¼¡£ÀýÈ磬ÔÚÊäÈëÊý¾ÝÊǾùÔÈ·Ö²¼Ê±£¬¿ìËÙÅÅÐòËã·¨ËùÐèµÄƽ¾ùʱ¼äÊÇO(n logn)¡£µ«ÊÇÈç¹ûÆäÊäÈëÒѾ­»ù±¾ÉÏÅźÃÐòʱ£¬ËùÓÃʱ¼ä¾Í´ó´óÔö¼ÓÁË¡£´Ëʱ£¬¿É²ÉÓÃÉáÎéµÂËã·¨Ïû³ýËã·¨ËùÐè¼ÆËãʱ¼äÓëÊäÈëʵÀý¼äµÄÕâÖÖÁªÏµ¡£
ÔÚÕâÀÎÒÃÇÓÃÉáÎéµÂÐÍÑ¡ÔñËã·¨Ëæ»úµÄÑ¡ÔñÒ»¸öÊý×éÔªËØ×÷Ϊ»®·Ö±ê×¼¡£ÕâÑù¼ÈÄܱ£Ö¤Ëã·¨µÄÏßÐÔʱ¼äƽ¾ùÐÔÄÜÓÖ±ÜÃâÁ˼ÆËãÄâÖÐλÊýµÄÂé·³¡£·ÇµÝ¹éµÄÉáÎéµÂÐÍËã·¨¿ÉÃèÊöÈçÏ£º
template
Type select(Type a[], int l, int r, int k)
{
static RandomNumber rnd;
while(true){
if(l>=r)
return a[l];
int i=l, j=l=rnd.Random(r-l+1);
Swap(a, a[j]);
j=r+1;
Type pivot=a[l];
while(true)
{
while(a[++i] while(a[--j]>pivot);
if(i>=j)
break;
Swap(a, a[j]);
}
if(j-l+1==k)
return pivot;
a[l]=a[j];
a[j]=pivot;
if(j-l+1 {
k=k-j+l-1;
l=j+1;
}
else
r=j-1;
}
}
template
Type Select(Type a[], int n, int k)
{
if(k<1||k>n)
throw OutOfBounds();
return select(a, 0, n-1, k);
}
ƽʱÎÒÃÇÒ»°ã¿ªÊ¼¿¼ÂǵÄÊÇÒ»¸öÓÐ×ÅºÜºÃÆ½¾ùÐÔÄܵÄÑ¡ÔñËã·¨£¬µ«ÔÚ×Çé¿ö϶ÔijЩʵÀýË㷨ЧÂʽϵ͡£ÕâʱºòÎÒÃÇÓøÅÂÊËã·¨£¬½«ÉÏÊöËã·¨¸ÄÔì³ÉÒ»¸öÉáÎéµÂÐÍËã·¨£¬Ê¹µÃ¸ÃËã·¨¶ÔÈκÎʵÀý¾ùÓÐЧ¡£
²»¹ýÔÚÓÐЩÇé¿öÏ£¬Ëù¸øµÄÈ·¶¨ÐÔËã·¨ÎÞ·¨Ö±½Ó¸ÄÔì³ÉÉáÎéµÂÐÍËã·¨¡£Õâʱºò¾Í¿ÉÒÔ½èÖúËæ»úÔ¤´¦Àí¼¼Êõ£¬²»¸Ä±äÔ­ÓеÄÈ·¶¨ÐÔËã·¨£¬½ö¶ÔÆäÊäÈë½øÐÐËæ»úÏ´ÅÆ£¬Í¬Ñù¿ÉÒԵõ½ÉáÎéµÂËã·¨µÄЧ¹û¡£»¹ÊǸղŵÄÀý×Ó£¬»»Ò»ÖÖ·½·¨ÊµÏÖ£º
template
void Shuffle(Type a[], int n)
{
static RandomNumber rnd;
for(int i=1;i int j=rnd.Random(n-i)+i;
Swap(a, a[j]);
}
}
ÔÚÉÏÎÄÀÎÒÃǶԸÅÂÊËã·¨ÖеÄÊýÖµ¸ÅÂÊËã·¨ÒÔ¼°ÉáÎéµÂËã·¨¾ÙÀý×÷Á˼òÒªµÄ½éÉÜ£¬Ï£ÍûÄÜʹ´ó¼Ò¶Ô¸ÅÂÊËã·¨ÓÐÒ»¸ö³õ²½µÄÈÏʶ£¬²¢ÇÒ½«ÕâÖÖ˼ÏëÔËÓõ½×Ô¼ºÆ½Ê±µÄ±à³ÌÖС£

±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/byxdaz/archive/2006/03/18/628403.aspx

[ Last edited by zyj8119 on 2010-9-10 at 08:14 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ¡£
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÖÇÄÜ»úÆ÷ÈË

Robot (super robot)

ÎÒÃǶ¼°®Ð¡Ä¾³æ

Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zyj8119 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 321Çóµ÷¼Á +5 ´óÃ×·¹£¡ 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á£¬Çó¸÷λÀÏʦÊÕÁô +8 ÇïÓÐľ±± 2026-03-14 8/400 2026-03-16 15:21 by ŶŶ123
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +3 Ϊѧ666 2026-03-16 3/150 2026-03-16 15:09 by ¼ÓºÅ+
[¿¼ÑÐ] 0703 ÎïÀí»¯Ñ§µ÷¼Á +3 ÎÒ¿ÉÒÔÉϰ¶µÄ¶Ô 2026-03-13 5/250 2026-03-16 10:50 by ÎÒ¿ÉÒÔÉϰ¶µÄ¶ÔÂ
[½Ìʦ֮¼Ò] ½¹ÂÇ +7 Ë®±ùÔÂÔÂÒ°Íà 2026-03-13 9/450 2026-03-16 10:00 by Quakerbird
[¿¼ÑÐ] ¶«ÄÏ´óѧ364Çóµ÷¼Á +4 JasonYuiui 2026-03-15 4/200 2026-03-16 08:36 by Linda Hu
[¿¼ÑÐ] 326Çóµ÷¼Á +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[¿¼ÑÐ] 0856ר˶279Çóµ÷¼Á +5 ¼ÓÓͼÓÓÍ£¡? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
[¿¼ÑÐ] ±¾¿ÆÄϾ©´óѧһ־Ը´¨´óҩѧ327 +3 ÂóÌï¸ûÕß 2026-03-14 3/150 2026-03-14 20:04 by ÍâÐÇÎÄÃ÷
[¿¼ÑÐ] ²ÄÁϹ¤³Ìר˶£¬Ò»Ö¾Ô¸Öйú¿óÒµ´óѧ£¬×Ü·Ö314£¬Çóµ÷¼Á +5 ÎÞи¿É»÷µÄ¾ÞÈË 2026-03-10 5/250 2026-03-14 00:37 by JourneyLucky
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Àîйâ 2026-03-10 3/150 2026-03-14 00:21 by JourneyLucky
[¿¼ÑÐ] 279Çóµ÷¼Á +3 Dizzy123@ 2026-03-10 3/150 2026-03-13 23:02 by JourneyLucky
[¿¼ÑÐ] 308Çóµ÷¼Á +5 ÊÇLupa°¡ 2026-03-11 5/250 2026-03-13 22:13 by JourneyLucky
[¿¼ÑÐ] 0703»¯Ñ§Çóµ÷¼Á +7 Â̶¹ÇÛ²ËÌÀ 2026-03-12 7/350 2026-03-13 17:25 by njzyff
[¿¼ÑÐ] 310Çóµ÷¼Á +3 ¡¾ÉÏÉÏÇ©¡¿ 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[¿¼ÑÐ] Çóµ÷¼Á +3 ³ÌÓ꺼 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[¿¼ÑÐ] 277Çóµ÷¼Á +4 anchor17 2026-03-12 4/200 2026-03-13 11:15 by °×Ò¹ÓÆ³¤
[¿¼ÑÐ] 268Çóµ÷¼Á +4 ºÃÔËÁ¬Ã಻¾ø 2026-03-12 4/200 2026-03-13 10:45 by hyswxzs
[¿¼ÑÐ] 279Çóµ÷¼Á +3 Īxiao 2026-03-10 4/200 2026-03-11 08:06 by Õ¶»êµÎÍÃ×Ó£¡
[¿¼ÑÐ] µ÷¼Á +5 ºÇßíŶ»í 2026-03-10 5/250 2026-03-10 22:00 by 28375m
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û