⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 suijishu.c

📁 伪随机数的产生。利用线性位移系列的方法来写的
💻 C
字号:
#include <stdio.h>


typedef struct {
    unsigned bit31:1;
    unsigned bit30:1;
    unsigned bit29:1;
    unsigned bit28:1;
    unsigned bit27:1;
	unsigned bit26:1;
	unsigned bit25:1;
	unsigned bit24:1;
	unsigned bit23:1;
    unsigned bit22:1;
	unsigned bit21:1;
	unsigned bit20:1;
	unsigned bit19:1;
	unsigned bit18:1;
	unsigned bit17:1;
	unsigned bit16:1;
	unsigned bit15:1;
    unsigned bit14:1;
    unsigned bit13:1;
    unsigned bit12:1;
    unsigned bit11:1;
	unsigned bit10:1;
	unsigned bit9:1;
	unsigned bit8:1;
	unsigned bit7:1;
    unsigned bit6:1;
	unsigned bit5:1;
	unsigned bit4:1;
	unsigned bit3:1;
	unsigned bit2:1;
	unsigned bit1:1;
	unsigned bit0:1;
}BITS ;

union lfsr{
	unsigned  int u32bit;    
	BITS  bits;
};


unsigned int myrand()
{   char tmp;
    static union lfsr randvalue;
	static i=0;
	if(i==0){
    randvalue.u32bit=1;
    }
	i=1;
    tmp=(((((randvalue.bits.bit31+randvalue.bits.bit6)%2+randvalue.bits.bit4)%2+randvalue.bits.bit2)%2+randvalue.bits.bit1)%2+randvalue.bits.bit0)%2;


	randvalue.u32bit=randvalue.u32bit>>1;
	if(tmp)
		randvalue.bits.bit0=1;
	else
		randvalue.bits.bit0=0;
	return randvalue.u32bit;

}


main()
{

    union lfsr x1;
	int i;

         
        /*
    	x1.u32bit=0xb96f3a75;
	    printf("\nx1.u32bit =%x\n",x1.u32bit);
		printf("x1.bits.bit0 =%d\n",x1.bits.bit0);
		printf("x1.bits.bit1 =%d\n",x1.bits.bit1);
		printf("x1.bits.bit2 =%d\n",x1.bits.bit2);
		printf("x1.bits.bit3 =%d\n",x1.bits.bit3);
		printf("x1.bits.bit4 =%d\n",x1.bits.bit4);
		printf("x1.bits.bit5 =%d\n",x1.bits.bit5);
		printf("x1.bits.bit6 =%d\n",x1.bits.bit6);
		printf("x1.bits.bit7 =%d\n",x1.bits.bit7);
		printf("x1.bits.bit8 =%d\n",x1.bits.bit8);
		printf("x1.bits.bit9 =%d\n",x1.bits.bit9);
		printf("x1.bits.bit10=%d\n",x1.bits.bit10);
		printf("x1.bits.bit11=%d\n",x1.bits.bit11);
		printf("x1.bits.bit12=%d\n",x1.bits.bit12);
		printf("x1.bits.bit13=%d\n",x1.bits.bit13);
		printf("x1.bits.bit14=%d\n",x1.bits.bit14);
		printf("x1.bits.bit15=%d\n",x1.bits.bit15);

		printf("x1.bits.bit16 =%d\n",x1.bits.bit16);
		printf("x1.bits.bit17 =%d\n",x1.bits.bit17);
		printf("x1.bits.bit18 =%d\n",x1.bits.bit18);
		printf("x1.bits.bit19 =%d\n",x1.bits.bit19);
		printf("x1.bits.bit20 =%d\n",x1.bits.bit20);
		printf("x1.bits.bit21 =%d\n",x1.bits.bit21);
		printf("x1.bits.bit22 =%d\n",x1.bits.bit22);
		printf("x1.bits.bit23 =%d\n",x1.bits.bit23);
		printf("x1.bits.bit24 =%d\n",x1.bits.bit24);
		printf("x1.bits.bit25 =%d\n",x1.bits.bit25);
		printf("x1.bits.bit26=%d\n",x1.bits.bit26);
		printf("x1.bits.bit27=%d\n",x1.bits.bit27);
		printf("x1.bits.bit28=%d\n",x1.bits.bit28);
		printf("x1.bits.bit29=%d\n",x1.bits.bit29);
		printf("x1.bits.bit30=%d\n",x1.bits.bit30);
		printf("x1.bits.bit31=%d\n",x1.bits.bit31);
        */
		for(i=0;i<200;i++)
		{
			printf("%x\t",myrand()%20000);
			if(i%5==0) printf("\n");
		}
		printf("\n\n\n");
       for(i=0;i<200;i++)
		{
			printf("%x\t",myrand());
			if(i%5==0) printf("\n");
		}
	   printf("\n\n\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -