用VC++生成+1,-1的随机数

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:41:12
我需要1组信源,用+1和-1的随机数代替。

source_bits = randb(Nobits*NoUsers);
mod_symbols=bpsk.modulate_bits(source_bits);

理论上用这2个语句就能实现,但是一直在头文件上调试不通。
所以想请教一下有没有更好的方法能够实现 +1和-1的随机数的形成

给,作了一个可运行的小程序:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main( void )
{
int i,k;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
k=rand()%3-1;
while(k==0) k=rand()%3-1;
printf( " k=%d\n", k );
}

getch();
return 1;
}

运行结果:
k=1
k=-1
k=1
k=1
k=1
k=-1
k=1
k=-1
k=-1
k=-1

source_bits=(rand()%2)*2-1;
解读:rand()%2产生0、1随机数,*2-1使之变为-1和1.

int i;
i = rand()%2; //i=0或者1
if(i)
return -1;
else
return 1;

//就是随机出来 -1或1。

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <iostream.h>
#include <iomanip.h>

int main(void)
{
int i, k;
srand((unsigned)time(N