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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久老女人爱爱| 亚洲精品成人精品456| 91在线国产福利| 五月天亚洲精品| 欧美国产国产综合| 日韩欧美国产一区在线观看| 97se亚洲国产综合自在线观| 精品一区二区在线观看| 亚洲一区二区三区四区五区黄| 久久久影院官网| 91精品国产综合久久福利| 91色综合久久久久婷婷| 国产成人av一区| 麻豆久久一区二区| 亚洲sss视频在线视频| 日韩理论在线观看| 国产日韩三级在线| wwww国产精品欧美| 欧美一区二区福利在线| 欧美日韩国产高清一区二区| 色悠悠久久综合| 成人性生交大合| 国产又黄又大久久| 另类综合日韩欧美亚洲| 日本成人中文字幕| 无码av中文一区二区三区桃花岛| 亚洲欧美视频一区| 国产精品国产三级国产aⅴ入口| 精品福利一区二区三区免费视频| 在线91免费看| 制服.丝袜.亚洲.另类.中文| 欧美色图12p| 欧美亚洲国产一卡| 色综合天天综合给合国产| av爱爱亚洲一区| av亚洲精华国产精华精华| 高清不卡一区二区| 春色校园综合激情亚洲| 成人性生交大片免费看在线播放 | 91在线小视频| 不卡一二三区首页| 99久久综合精品| 99re6这里只有精品视频在线观看| 成人午夜视频在线| 97久久精品人人澡人人爽| www.在线成人| 色综合视频在线观看| 91搞黄在线观看| 欧美日韩视频在线第一区 | 中文字幕国产一区二区| 国产亚洲精品资源在线26u| 久久精品亚洲精品国产欧美kt∨| 国产欧美一区二区精品忘忧草| 国产日本亚洲高清| 亚洲欧美综合网| 亚洲一区视频在线观看视频| 天堂午夜影视日韩欧美一区二区| 日韩成人一级片| 国产精品影视在线| 91网站黄www| 欧美美女激情18p| 精品国产91乱码一区二区三区 | 国产精品入口麻豆原神| 国产精品久久久久一区二区三区共| 国产精品视频你懂的| 亚洲欧美国产毛片在线| 亚洲成av人片一区二区梦乃| 久久se精品一区精品二区| 国产成人在线视频网址| 欧美亚洲综合在线| 欧美电影免费观看高清完整版在线| 国产免费观看久久| 亚洲一区二区精品视频| 韩国女主播一区| 99riav久久精品riav| 91精品啪在线观看国产60岁| 久久在线观看免费| 亚洲精品写真福利| 狠狠色丁香久久婷婷综| 91蜜桃在线观看| 日韩一卡二卡三卡四卡| 最新日韩在线视频| 蜜臀久久99精品久久久久宅男| 成人免费视频视频| 91精品国产色综合久久不卡蜜臀| 国产精品三级久久久久三级| 日韩精品国产欧美| 成人av网站免费| 日韩一区二区不卡| 亚洲主播在线观看| 丁香一区二区三区| 91精品国产一区二区三区蜜臀| 亚洲私人影院在线观看| 免费高清不卡av| 91福利在线播放| 国产欧美一区二区精品性| 日韩精品高清不卡| 色综合久久综合网欧美综合网| 精品少妇一区二区三区免费观看| 亚洲精品国产精华液| 国产麻豆视频一区二区| 欧美久久免费观看| 日韩理论片网站| 国产99久久久精品| 欧美成人性福生活免费看| 午夜久久久影院| 96av麻豆蜜桃一区二区| 国产日韩欧美a| 久久精品国产免费| 欧美日韩亚洲综合一区二区三区| 国产精品二三区| 国产麻豆一精品一av一免费| 日韩色视频在线观看| 亚洲 欧美综合在线网络| aaa亚洲精品一二三区| 久久久精品一品道一区| 久久国产精品免费| 日韩一级高清毛片| 日日骚欧美日韩| 欧美性感一区二区三区| 亚洲一区二区三区美女| 91性感美女视频| 国产精品毛片无遮挡高清| 国产精品一卡二卡在线观看| 日韩三区在线观看| 日韩二区三区四区| 欧美肥胖老妇做爰| 午夜伊人狠狠久久| 欧美美女网站色| 美女mm1313爽爽久久久蜜臀| 91麻豆精品国产91久久久久久久久 | 精品国产免费久久| 青青草原综合久久大伊人精品优势| 欧美三日本三级三级在线播放| 亚洲国产日韩综合久久精品| 欧美丝袜丝交足nylons| 午夜电影一区二区三区| 91麻豆精品久久久久蜜臀| 久久精品国产第一区二区三区| 精品欧美一区二区在线观看| 久草这里只有精品视频| 久久一区二区三区四区| 国产成人午夜视频| 国产精品电影一区二区| 91丝袜美女网| 夜夜揉揉日日人人青青一国产精品| 色欧美日韩亚洲| 亚洲精品美腿丝袜| 欧美日韩综合一区| 奇米888四色在线精品| 精品裸体舞一区二区三区| 国内精品伊人久久久久av影院| 久久精品欧美一区二区三区麻豆| av资源站一区| 亚洲高清在线视频| 欧美mv日韩mv国产网站| 国产精品一区二区三区网站| 中文字幕成人在线观看| 在线观看一区二区视频| 免费成人在线播放| 国产欧美日本一区二区三区| 91在线无精精品入口| 视频一区二区不卡| 国产亚洲福利社区一区| 91福利在线导航| 久久精品国产亚洲a| 国产精品灌醉下药二区| 欧美另类变人与禽xxxxx| 久久91精品国产91久久小草| 亚洲国产精品ⅴa在线观看| 欧美又粗又大又爽| 国产麻豆精品theporn| 一区二区日韩av| 久久伊人蜜桃av一区二区| 色激情天天射综合网| 精品系列免费在线观看| 综合色天天鬼久久鬼色| 91精品国产高清一区二区三区蜜臀 | 一级精品视频在线观看宜春院 | 亚洲啪啪综合av一区二区三区| 91精品国产乱码久久蜜臀| 成人18精品视频| 日韩高清国产一区在线| 中文在线资源观看网站视频免费不卡| 一本大道久久a久久精品综合| 免费一级欧美片在线观看| 成人免费一区二区三区视频| 日韩免费高清电影| 色狠狠av一区二区三区| 国产精品综合视频| 视频一区二区中文字幕| 日本一区二区在线不卡| 91精品国产综合久久久蜜臀粉嫩| 成人黄色电影在线 | 成人v精品蜜桃久久一区| 免费三级欧美电影| 亚洲午夜羞羞片| 国产精品福利影院| 欧美精品一区二区在线播放| 欧美老肥妇做.爰bbww视频|