亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rand.c

?? ldpc的11個程序 encode decode extract make-gen make-ldpc make-pchk print-gen print-pchk rand-src transm
?? C
字號:
/* RAND.C - Random number generation module. *//* Copyright (c) 1995, 1996, 2000, 2001 by Radford M. Neal  * * Permission is granted for anyone to copy, use, or modify this program  * for purposes of research or education, provided this copyright notice  * is retained, and note is made of any changes that have been made.  * * This program is distributed without any warranty, express or implied. * As this program was written for research purposes only, it has not been * tested to the degree that would be advisable in any important application. * All use of this program is entirely at the user's own risk. *//* NOTE:  See rand.html for documentation on these procedures. */#include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include "rand.h"
#define   RAND_FILE  "c:\\randfile"/* This module uses the 'drand48' pseudo-random number generator found   on most Unix systems, the output of which is combined with a file   of real random numbers.   Many of the methods used in this module may be found in the following   reference:      Devroye, L. (1986) Non-Uniform Random Variate Generation,         New York: Springer-Verlag.   The methods used here are not necessarily the fastest available.  They're   selected to be reasonably fast while also being easy to write.*//* CONSTANT PI.  Defined here if not in <math.h>. */#ifndef M_PI#define M_PI 3.14159265358979323846#endif/* TABLES OF REAL RANDOM NUMBERS.  A file of 100000 real random numbers   (NOT pseudo-random) is used in conjunction with pseudo-random numbers   for extra insurance.  These are employed in the form of five tables   of 5000 32-bit integers.     The file must be located at the path given by RAND_FILE, which should   be defined on the "cc" command line. */#define Table_size 5000			/* Number of words in each table */static int rn[N_tables][Table_size];	/* Random number tables *//* STATE OF RANDOM NUMBER GENERATOR. */static int initialized = 0;		/* Has module been initialized? */static rand_state state0;		/* Default state structure */static rand_state *state;		/* Pointer to current state *//* INITIALIZE MODULE.  Sets things up using the default state structure,   set as if rand_seed had been called with a seed of one. */static void initialize (void){  int i, j, k, w;  char b;  FILE *f;  if (!initialized)  {    f = fopen(RAND_FILE,"rb");        if (f==NULL)    { 
	  fprintf(stderr,"Can't open file of random numbers (%s)\n",RAND_FILE);      exit(1);    }    for (i = 0; i<N_tables; i++)    { 
	  for (j = 0; j<Table_size; j++)      { 
		
		w = 0;        for (k = 0; k<4; k++)        { 
		  if (fread(&b,1,1,f)!=1)          { 
			fprintf(stderr,"Error reading file of random numbers (%s)\n", RAND_FILE);            exit(1);          }          w = (w<<8) | (b&0xff);        }        rn[i][j] = w;      }    }    state = &state0;    initialized = 1;    rand_seed(1);  }}/* SET CURRENT STATE ACCORDING TO SEED. */void rand_seed( int seed){   int j;  if (!initialized) initialize();  state->seed = seed;  state->state48[0] = seed>>16;  state->state48[1] = seed&0xffff;  state->state48[2] = rn[0][(seed&0x7fffffff)%Table_size];  for (j = 0; j<N_tables; j++)   { 
	state->ptr[j] = seed%Table_size;    seed /= Table_size;  }}/* SET STATE STRUCTURE TO USE. */void rand_use_state( rand_state *st){   if (!initialized) initialize();  state = st;}/* RETURN POINTER TO CURRENT STATE. */rand_state *rand_get_state (void){   if (!initialized) initialize();  return state;}/* GENERATE RANDOM 31-BIT INTEGER.  Not really meant for use outside this   module. */int rand_word(void){  int v;  int j;  if (!initialized) initialize();  //v = nrand48(state->state48);
  v=1000;  for (j = 0; j<N_tables; j++)  { v ^= rn[j][state->ptr[j]];  }  for (j = 0; j<N_tables && state->ptr[j]==Table_size-1; j++)   { state->ptr[j] = 0;  }  if (j<N_tables)   { state->ptr[j] += 1;  }  return v & 0x7fffffff;}/* GENERATE UNIFORMLY FROM [0,1). */double rand_uniform (void){  return (double)rand_word() / (1.0+(double)0x7fffffff);}/* GENERATE UNIFORMLY FORM (0,1). */double rand_uniopen (void){  return (0.5+(double)rand_word()) / (1.0+(double)0x7fffffff);}/* GENERATE RANDOM INTEGER FROM 0, 1, ..., (n-1). */int rand_int( int n){   return (int) (n * rand_uniform());}/* GENERATE INTEGER FROM 0, 1, ..., (n-1), WITH GIVEN DISTRIBUTION. */int rand_pickd( double *p,  int n){   double t, r;  int i;  t = 0;  for (i = 0; i<n; i++)  { if (p[i]<0) abort();    t += p[i];  }  if (t<=0) abort();  r = t * rand_uniform();  for (i = 0; i<n; i++)  { r -= p[i];    if (r<0) return i;  }  /* Return value with non-zero probability if we get here due to roundoff. */  for (i = 0; i<n; i++)   { if (p[i]>0) return i;  }  abort(); }/* SAME PROCEDURE AS ABOVE, BUT WITH FLOAT ARGUMENT. */int rand_pickf( float *p,  int n){   double t, r;  int i;  t = 0;  for (i = 0; i<n; i++)  { if (p[i]<=0) abort();    t += p[i];  }  if (t<=0) abort();  r = t * rand_uniform();  for (i = 0; i<n; i++)  { r -= p[i];    if (r<0) return i;  }  /* Return value with non-zero probability if we get here due to roundoff. */  for (i = 0; i<n; i++)   { if (p[i]>0) return i;  }  abort(); }/* GAUSSIAN GENERATOR.  Done by using the Box-Muller method, but only one   of the variates is retained (using both would require saving more state).   See Devroye, p. 235.    As written, should never deliver exactly zero, which may sometimes be   helpful. */double rand_gaussian (void){  double a, b;  a = rand_uniform();  b = rand_uniopen();  return cos(2.0*M_PI*a) * sqrt(-2.0*log(b));}/* EXPONENTIAL GENERATOR.  See Devroye, p. 29.  Written so as to never   return exactly zero. */double rand_exp (void){  return -log(rand_uniopen());}/* LOGISTIC GENERATOR.  Just inverts the CDF. */double rand_logistic (void){ double u;  u = rand_uniopen();  return log(u/(1-u));}/* CAUCHY GENERATOR.  See Devroye, p. 29. */double rand_cauchy (void){  return tan (M_PI * (rand_uniopen()-0.5));}/* GAMMA GENERATOR.  Generates a positive real number, r, with density   proportional to r^(a-1) * exp(-r).  See Devroye, p. 410 and p. 420.    Things are fiddled to avoid ever returning a value that is very near    zero. */double rand_gamma( double a){  double b, c, X, Y, Z, U, V, W;  if (a<0.00001)  { X = a;  }  else if (a<=1)   {     U = rand_uniopen();    X = rand_gamma(1+a) * pow(U,1/a);  }  else if (a<1.00001)  { X = rand_exp();  }  else  {    b = a-1;    c = 3*a - 0.75;      for (;;)    {      U = rand_uniopen();      V = rand_uniopen();          W = U*(1-U);      Y = sqrt(c/W) * (U-0.5);      X = b+Y;        if (X>=0)      {         Z = 64*W*W*W*V*V;          if (Z <= 1 - 2*Y*Y/X || log(Z) <= 2 * (b*log(X/b) - Y)) break;      }    }  }  return X<1e-30 && X<a ? (a<1e-30 ? a : 1e-30) : X;}/* BETA GENERATOR. Generates a real number, r, in (0,1), with density   proportional to r^(a-1) * (1-r)^(b-1).  Things are fiddled to avoid   the end-points, and to make the procedure symmetric between a and b. */double rand_beta ( double a,   double b){  double x, y, r;  do  { x = rand_gamma(a);    y = rand_gamma(b);    r = 1.0 + x/(x+y);    r = r - 1.0;  } while (r<=0.0 || r>=1.0);  return r;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩va亚洲va欧美va久久| 亚洲女性喷水在线观看一区| 色婷婷亚洲精品| 成人在线视频一区| 国产激情视频一区二区三区欧美| 美国欧美日韩国产在线播放| 亚洲1区2区3区4区| 天堂久久一区二区三区| 亚洲成人动漫在线免费观看| 亚洲激情欧美激情| 亚洲国产成人高清精品| 亚洲成人黄色小说| 欧美aa在线视频| 蜜桃精品视频在线| 日本人妖一区二区| 国产一区二区三区久久久| 激情综合色播激情啊| 国产精品亚洲专一区二区三区| 国产在线观看一区二区| 国产一区二区精品久久99| 丁香六月综合激情| 99精品视频一区| 欧美丝袜丝交足nylons| 欧美一区二区三区婷婷月色| www国产精品av| 亚洲欧洲日韩在线| 婷婷综合另类小说色区| 久久精品国产亚洲5555| 男男视频亚洲欧美| 国产91精品一区二区麻豆亚洲| 不卡一区在线观看| 欧美日韩免费观看一区三区| 日韩精品专区在线影院重磅| 国产欧美精品一区二区三区四区| 亚洲欧美日韩久久精品| 美脚の诱脚舐め脚责91| 99re66热这里只有精品3直播| 欧美日韩精品一区二区| 久久这里只有精品视频网| 亚洲精品国产高清久久伦理二区| 日韩在线观看一区二区| 成人av网站免费观看| 日韩欧美黄色影院| 亚洲免费看黄网站| 精品亚洲欧美一区| 欧美日韩中文字幕一区| 国产日韩欧美综合在线| 日韩专区欧美专区| 99精品黄色片免费大全| 精品福利二区三区| 九色porny丨国产精品| 国产69精品久久久久777| 欧美一区三区四区| 一区二区三区欧美日韩| 成人精品鲁一区一区二区| 日韩一区二区在线观看| 一区二区在线观看免费 | 成人免费视频视频在线观看免费| 欧洲国内综合视频| 中文字幕国产一区| 国内精品伊人久久久久影院对白| 欧美午夜精品一区二区蜜桃| 国产欧美精品区一区二区三区| 青青草国产成人av片免费| 日本久久一区二区| 中文字幕免费不卡| 激情久久五月天| 欧美一级高清大全免费观看| 一级特黄大欧美久久久| 91麻豆福利精品推荐| 国产精品乱码妇女bbbb| 国产999精品久久| 国产色综合久久| 国产精品一区久久久久| 2022国产精品视频| 国产一区二区三区免费观看| 精品成人a区在线观看| 久久草av在线| 精品999在线播放| 国产在线不卡一区| 国产日韩一级二级三级| 成人h精品动漫一区二区三区| 国产欧美视频一区二区| 国产成人av电影在线| 欧美—级在线免费片| 成人国产一区二区三区精品| 国产精品女上位| 色激情天天射综合网| 亚洲国产婷婷综合在线精品| 精品视频免费看| 美腿丝袜亚洲综合| 久久女同性恋中文字幕| 国产69精品久久久久777| 自拍偷自拍亚洲精品播放| 欧洲精品在线观看| 日本在线不卡视频| 久久久国产一区二区三区四区小说| 国产精品亚洲一区二区三区妖精 | av成人动漫在线观看| 亚洲男人的天堂在线aⅴ视频| 欧美日韩高清在线播放| 久久69国产一区二区蜜臀| 国产蜜臀av在线一区二区三区| 99在线精品免费| 视频一区二区三区中文字幕| 精品国产乱码91久久久久久网站| 不卡一二三区首页| 日韩国产精品久久久| 国产欧美日韩不卡免费| 欧美色倩网站大全免费| 国产一区二区中文字幕| 亚洲精品视频一区二区| 日韩欧美色综合网站| 99久久99久久综合| 青青青伊人色综合久久| 国产精品二区一区二区aⅴ污介绍| 欧美三级三级三级爽爽爽| 国内精品国产成人国产三级粉色 | 欧美日韩激情一区二区| 精东粉嫩av免费一区二区三区| 国产精品不卡在线| 中文字幕不卡在线观看| 欧美日本国产视频| a在线播放不卡| 久久99久国产精品黄毛片色诱| 亚洲欧美在线另类| 久久久久久久久久看片| 欧美三级电影在线看| 粉嫩aⅴ一区二区三区四区| 日韩国产精品久久久久久亚洲| 亚洲欧洲精品一区二区三区| 欧美一区二区观看视频| 欧洲国内综合视频| 91片黄在线观看| 国产精品一区三区| 久久精品国产99国产精品| 亚洲成人av一区二区| 中文字幕亚洲一区二区va在线| 精品欧美乱码久久久久久1区2区| 欧美综合一区二区| 色综合久久综合网欧美综合网| 国产一区二区三区久久久| 麻豆免费精品视频| 日韩高清不卡一区二区三区| 亚洲资源在线观看| 亚洲免费观看高清在线观看| 国产欧美日本一区二区三区| 欧美精品一区二区三区蜜桃视频| 91精品国产综合久久精品app| 色婷婷综合久久久久中文一区二区 | 欧美电影精品一区二区| 欧美久久免费观看| 欧美日韩一区高清| 在线视频一区二区免费| 欧美视频一区在线观看| 欧美性受极品xxxx喷水| 在线免费视频一区二区| 欧美专区日韩专区| 欧美性色黄大片| 欧美日韩综合不卡| 3d成人h动漫网站入口| 91精品在线免费观看| 欧美一区二区成人| 日韩精品中文字幕一区二区三区 | 久久青草国产手机看片福利盒子| 精品久久久久久亚洲综合网| 亚洲精品一线二线三线无人区| 精品国产乱码久久久久久闺蜜| 久久精品人人做人人综合| 久久久99久久| 亚洲视频 欧洲视频| 久久精品免费观看| 国产精品主播直播| 成人免费高清视频| 日本韩国一区二区三区视频| 欧美日韩国产综合一区二区 | 亚洲国产精品av| 亚洲欧美激情视频在线观看一区二区三区 | 成人综合在线观看| 99久久婷婷国产精品综合| 在线观看一区不卡| 宅男在线国产精品| 久久在线免费观看| 一区二区在线看| 男人操女人的视频在线观看欧美| 国产一区二区看久久| 日本二三区不卡| 精品嫩草影院久久| 国产精品的网站| 青青草国产精品97视觉盛宴| 成人国产视频在线观看| 欧美人妖巨大在线| 国产欧美日韩在线| 日韩电影免费在线| 成人黄色在线网站| 精品久久久久久综合日本欧美| 自拍偷拍欧美激情| 激情综合网天天干| 欧美日韩一区三区四区| 国产欧美日韩卡一|