c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了搜罗的,希望大家喜欢.

源代码在线查看: 使用线性同余算法产生伪随机数c语言模拟.txt

软件大小: 76 K
上传用户: jihengzhang
关键词: c语言 算法 网络
下载地址: 免注册下载 普通下载 VIP

相关代码

				使用线性同余算法产生伪随机数C语言模拟[原创] 
				     C语言中有个random(n)函数,可以产生0——n-1之间的伪随机数,rand()函数可以产生0——32767之间的伪随机数,一般需要配合使用srand(long)给出随机种子,或者使用randomize()函数来根据系统时间指定随机种子。
				
				     常用的产生伪随机数的算法是线性同余法,下面是我写的代码,相信通过代码,大家可以很容易地明白伪随机数原理:
				
				     算法:an+1=b*an+c mod m;a0=d。d为种子。
				
				int d;/*种子*/
				long My_Rand(long b,long c,long m)
				{
				   return  d=(b*d+c)%m;/*产生随机数,并记录,用来产生下一个伪随机数*/
				}
				
				long gcd1(long m,long n)
				{/*求最大公约数,算法中的b和m一般取互素*/
				   long r;
				   while((r=m%n)!=0)
				   {
				     m=n;
				     n=r;
				   }
				   return n;
				}
				
				long gcd(long m)
				{/*计算与m互素的b*/
				   long i=2;
				   while(gcd1(i,m)!=1)
				      i++;
				   return i;
				}
				
				void main()
				{
				   long b,c,m;
				   int count;
				   int i;
				   m=32767;
				   b=gcd(m);
				   c=5001;
				   d=3;
				   count=800;
				   for(i=0;i				   {
				      if(i%10==0)
				           printf("\n");
				      printf("%8ld",My_Rand(b,c,m));
				   }
				}
				
				当种子d为131时运行结果如下:
				
				
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				   30434     365    5761   16553    5370   15771    3806   12643   30317     131
				    5293   15617    3498   12027   29085   30434     365    5761   16553    5370
				   15771    3806   12643   30317     131    5293   15617    3498   12027   29085
				
				当种子数为151时,运行结果如下:
				
				
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				   31714    2925   10881   26793   25850   23964   20192   12648   30327     151
				    5333   15697    3658   12347   29725   31714    2925   10881   26793   25850
				   23964   20192   12648   30327     151    5333   15697    3658   12347   29725
				 
							

相关资源